0

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

试过:

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

可以stdClass帮忙吗?如何?

谢谢!

4

3 回答 3

1

不,在 php 中,所有类都不是从共同祖先派生的。

所以怀疑你可以使用当前 php 的实现来声明“任何类的对象”

于 2012-04-09T23:35:59.150 回答
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) {
   [...]
}
于 2012-04-09T23:37:54.437 回答
0

加布里埃尔,

如果你想做的是检查变量是否是一个对象,你可以这样做:

public function set($service = null, $instance) {
    if (!is_object($instance)) return null; //or whatever
    [..]
}

你想阻止什么?通过您的声明,如果变量不是对象(它不会强制转换它),您将获得异常。

于 2012-04-09T23:40:31.017 回答