Php &引用;类的对象。。。无法转换为字符串";委派

Php &引用;类的对象。。。无法转换为字符串";委派,php,Php,为什么PHP认为我要将该对象转换为字符串 Class1{} 二级{ 函数构造(Class1$ClassObj){ $this->$class1Obj=$class1Obj;//->可捕获的致命错误:类Class1的对象无法转换为字符串 } } $class1Obj=新的Class1(); $class2Obj=新的Class2($class2Obj); 这是额外的$?这样会更好: $this->class1Obj = $class1Obj; 这是额外的$?这样会更好: $this->

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

Class1{}
二级{
函数构造(Class1$ClassObj){
$this->$class1Obj=$class1Obj;//->可捕获的致命错误:类Class1的对象无法转换为字符串
}
}
$class1Obj=新的Class1();
$class2Obj=新的Class2($class2Obj);

这是额外的
$
?这样会更好:

$this->class1Obj = $class1Obj;

这是额外的
$
?这样会更好:

$this->class1Obj = $class1Obj;

要进一步解释,当您执行此操作时:

$this->$class1Obj = $class1Obj;
您实际要做的是在$this->[valueOf$class1Obj]中指定$class1Obj的值。让我们做一个例子,假设$class1Obj具有以下值:

$class1Obj = "test123";
执行以下操作:

$this->$class1Obj = $class1Obj;
就相当于这样做:

$this->test123 = "test123";

要进一步解释,当您执行此操作时:

$this->$class1Obj = $class1Obj;
您实际要做的是在$this->[valueOf$class1Obj]中指定$class1Obj的值。让我们做一个例子,假设$class1Obj具有以下值:

$class1Obj = "test123";
执行以下操作:

$this->$class1Obj = $class1Obj;
就相当于这样做:

$this->test123 = "test123";

$this->$class1Obj尝试创建一个以Class2作为属性名的公共字符串属性

这就是为什么会出现致命错误的原因。请在Class1中尝试此代码

class Class1 {
   public function __toString() {
      return 'Class1'; 
   } 
}

编辑:延迟回答

$this->$classaobj尝试创建一个以Class2作为属性名的公共字符串属性

这就是为什么会出现致命错误的原因。请在Class1中尝试此代码

class Class1 {
   public function __toString() {
      return 'Class1'; 
   } 
}

编辑:回答迟到了

真尴尬。可能有点累。无法删除该问题。多么尴尬。可能有点累。无法删除该问题。你是对的。所述转换不是赋值,而是左侧:
$this->$classaobj
首先转换为
$this->[stringValueOfClass1Obj]
。您是对的。所述转换不是赋值,而是左侧:
$this->$classaobj
首先转换为
$this->[stringValueOfClass1Obj]