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