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

时间:2012-05-01 23:26:03

标签: php methods

  

可能重复:
  PHP __get and __set magic methods

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

  

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

感谢。

1 个答案:

答案 0 :(得分:4)

基本思路是这样的:如果你调用$foo->barbar从未被定义为该类的属性,它将被发送到get / set魔术方法。如果实现这些方法,则可以看到被调用的名称,在“set”的情况下,可以看到传递的值。然后你可以随心所欲地做任何事情

示例:

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

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