1

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

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

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

谢谢。

4

1 回答 1

4

基本思想是这样的:如果你调用$foo->bar, wherebar从未定义为该类的属性,它将被发送到 get/set 魔术方法。如果您实现这些方法,您将能够看到被调用的名称,以及在“set”的情况下,传递了什么值。然后你可以用它做任何你想做的事

例子:

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

public function __get($name)
{
    if ($name === "bar")
    {
        return $this->privateProperty;
    }
}
于 2012-05-01T23:30:08.060 回答