强制变量传递为对象

时间:2012-04-09 23:31:28

标签: php oop object

我需要将传递的变量的类型定义为通用对象,如何?

尝试:

public function set($service = null, (object) $instance) {
    [..]
}

stdClass可以提供帮助吗?怎么样?

谢谢!

3 个答案:

答案 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
    [..]
}

你想用什么阻止?使用声明,如果变量不是对象(它不会转换它),你会得到一个异常。