PHP“魔术”方法获取/设置


PHP "magic" methods Get/Set

可能的重复项:
PHP __get和__set魔术方法

我有一个关于 Get/Set 方法的考试问题,但我找不到任何直接的定义。有人可以为我解释/定义它或只是回答这个问题吗?

识别并描述 PHP 中使用的两个内置"魔术"方法 检索和更新私有类/对象属性。

谢谢。

基本思想是这样的:如果你调用 $foo->bar ,其中 bar 从未被定义为该类的属性,它将被发送到 get/set magic 方法。如果实现这些方法,您将能够看到被调用的名称,如果是"set",则可以看到传递的值。然后,您可以用它做任何您想做的事情

例:

public function __set($name, $value)
{
    if ($name === "bar")
    {
        $this->privateProperty = $value;
    }
}
public function __get($name)
{
    if ($name === "bar")
    {
        return $this->privateProperty;
    }
}