我需要将传递的变量的类型定义为通用对象,如何?
尝试:
public function set($service = null, (object) $instance) {
[..]
}
stdClass
可以提供帮助吗?怎么样?
谢谢!
答案 0 :(得分:1)
不,在php中,所有类都不是来自共同的祖先。
令人怀疑的是,您可以使用当前的php实现来声明“任何类的对象”
答案 1 :(得分:1)
不,对象必须是某个类。您可以将任何类名称作为对象的类型
public function set($service = null, ClassName $instance) {
//now the instance HAS to be the object of the class
}
或者一个基本技巧是自己创建基础课
Class GenericObject {}
$myobj = new GenericObject();
$myobj -> myCustomVar = 'my custom var';
//Now send it
public function set($service = null, GenericObject $instance) {
[...]
}
答案 2 :(得分:0)
加布里埃尔,
如果你想要做的是检查变量是否是一个对象,你可以这样做:
public function set($service = null, $instance) {
if (!is_object($instance)) return null; //or whatever
[..]
}
你想用什么阻止?使用声明,如果变量不是对象(它不会转换它),你会得到一个异常。