为了账号安全,请及时绑定邮箱和手机立即绑定

这里的命名空间是什么意思 ?

function setStrategy(\IMooc\UserStrategy $strategy){        $this->strategy = $strategy;    } 

这个函数传的参数是$strategy 类型是一个对象,文件所在的目录/命名空间是IMooc

UserStrategy是一个接口,我的问题是:

命名空间+接口+实现该接口的对象,这里的运行机制是怎样的,谢谢~~~

正在回答

2 回答

这个是对类型的指定,强类型语言都是这种写法,就是指定当前函数接收的对象类型是什么,而对于php来说的话可以直接传递对象,不需要指定类型也可以。

0 回复 有任何疑惑可以回复我~
#1

frgo_03360772 提问者

那可不可以认为传递的是\IMooc下的UserStrategy接口类型参数,可是这样又有矛盾了,$strategy并不是一个接口,它是一个对象啊,所以这个比较晕,难道实现接口的对象都可以以接口的形式传参么?先谢谢你的回复~~~
2016-08-10 回复 有任何疑惑可以回复我~

是的,实现该接口的所有类的对象都可以传。

0 回复 有任何疑惑可以回复我~
#1

frgo_03360772 提问者

受教了,我之前很少见php这么传参,所以被镇住了,非常感谢耐心解答!!
2016-08-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这里的命名空间是什么意思 ?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信