1

为什么 PHP 认为我想将该对象转换为字符串?

class Class1 {}

class Class2 {
    function __construct( Class1 $class1Obj) {
        $this->$class1Obj = $class1Obj; // -> Catchable fatal error: Object of class Class1 could not be converted to string
    }
}

$class1Obj = new Class1();
$class2Obj = new Class2($class1Obj);
4

2 回答 2

5

是额外的$吗?那会更好:

$this->class1Obj = $class1Obj;
于 2013-07-03T20:34:27.700 回答
2

为了解释更多,当你这样做时:

$this->$class1Obj = $class1Obj;

您实际上要做的是在 $this->[valueOf$class1Obj] 中分配 $class1Obj 的值。举个例子,假设 $class1Obj 有这个值:

$class1Obj = "test123";

执行以下操作:

$this->$class1Obj = $class1Obj;

相当于这样做:

$this->test123 = "test123";
于 2013-07-03T20:38:44.457 回答