差异b / w PHP Zend Framework中的单和双下划线

时间:2012-01-17 11:47:00

标签: php zend-framework

我是一个开始研究zend framwork的新人。我从zend网站快速启动了一个例子。当我查看代码然后我发现了单键和双键下划线,这对我来说是好奇的。下面是代码...


1.
    protected $_comment;
    protected $_created;
    protected $_email;
    protected $_id;

2. 
   public function setComment($text)
    {
        $this->_comment = (string) $text;
        return $this;
    }
3.
    public function __set($name, $value)
    {
        $method = 'set' . $name;
        if (('mapper' == $name) || !method_exists($this, $method)) {
            throw new Exception('Invalid guestbook property');
        }
        $this->$method($value);
    }

2 个答案:

答案 0 :(得分:3)

你应该看看这个:

PHP Magic Methods

  

<强>注意
  PHP保留所有以__开头的函数名称作为魔法。   建议您不要在PHP中使用带__的函数名   除非你想要一些记录的魔术功能。

Zend Framework Naming Conventions

  

对于使用“private”或。声明的对象上的方法   “protected”修饰符,方法名称的第一个字符必须是   一个下划线。这是唯一可接受的应用程序   在方法名称中加下下划线。宣称“公开”的方法永远不应该   包含下划线。

     

例如使用“private”或。声明的变量   “protected”修饰符,变量名的第一个字符必须是   一个下划线。这是唯一可接受的应用程序   以变​​量名称加下划线。成员变量声明为“公共”   永远不要以下划线开头。

答案 1 :(得分:1)

双下划线表示PHP Magic Method,其中作为单个下划线(仅限惯例)表示类方法或属性是私有的或至少受保护。

例如你期望

protected function _doThis() {}

但不是

public function _doThat() {}