我知道这个操作是如何工作的( - >),但我只是好奇。正如您在类中使用它时可以从以下代码中看到的那样,它就像$this->$name
一样,但在类之外它就像$a->attribute
。那么为什么第一个你使用两个美元符号($)但第二个你只使用一个美元符号?我很好奇。我可以忽略它,但它让我感到紧张。
<?php
class classname
{
public $attribute;
public function __get($name)
{
return $this->$name;
}
}
$a = new classname();
$a->attribute = "Hello";
echo $a->attribute;
?>
提前谢谢
答案 0 :(得分:0)
$this -> $name
其中$this
包含对象的类,$name
您已经将值传递给它,因此您声明为$this->$name
。
$a->attribute
已经声明,因此您正在使用属性访问对象。
如果您使用未初始化的属性,则可以直接使用$this->name
。