使用此操作 - >课内外

时间:2014-07-25 10:38:32

标签: php function accessor

我知道这个操作是如何工作的( - >),但我只是好奇。正如您在类中使用它时可以从以下代码中看到的那样,它就像$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;
?>

提前谢谢

1 个答案:

答案 0 :(得分:0)

$this -> $name其中$this包含对象的类,$name您已经将值传递给它,因此您声明为$this->$name

$a->attribute已经声明,因此您正在使用属性访问对象。

如果您使用未初始化的属性,则可以直接使用$this->name