我是否错过了某些东西,或者真的不支持PHP 5.x中的通用对象类型提示?PHP类型提示:数组支持,对象不是?
我觉得很奇怪,提示数组是支持的,而提示对象不是,至少不是开箱即用的。
我想有这样的事情:
function foo(object $o)
正如我们:可能使用
function foo(array $o)
实例:对象集合类的方法。
解决方法:使用一个接口“对象”的所有类实现或从通用类“对象”延伸的所有类和写是这样的:
function foo(Object $o)
嗯,这只是一点都不可爱。
使用stdClass
作为类型提示不起作用:
Catchable fatal error: Argument 1 passed to c::add() must be an instance of stdClass, instance of b given
请勿使用具体类型进行提示。要么使用接口,要么阅读鸭子打字。 – 2009-10-10 11:41:45
如果我要走没有具体的类型路径,我宁愿使用is_object()。但这不是讨论的重点。 – 2009-10-10 11:54:04
看,PHP是一种非常不一致的语言,在这种语言中,对象不像Java一样从一个类继承。对于一般物体没有暗示的事实是一个疏忽,但我认为你必须通过这一点并为其他奇怪的事情做好准备。 – 2009-10-10 12:03:37