我是一个开始研究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); }
答案 0 :(得分:3)
你应该看看这个:
<强>注意强>
PHP保留所有以__开头的函数名称作为魔法。 建议您不要在PHP中使用带__的函数名 除非你想要一些记录的魔术功能。
Zend Framework Naming Conventions
对于使用“private”或。声明的对象上的方法 “protected”修饰符,方法名称的第一个字符必须是 一个下划线。这是唯一可接受的应用程序 在方法名称中加下下划线。宣称“公开”的方法永远不应该 包含下划线。
例如使用“private”或。声明的变量 “protected”修饰符,变量名的第一个字符必须是 一个下划线。这是唯一可接受的应用程序 以变量名称加下划线。成员变量声明为“公共” 永远不要以下划线开头。
答案 1 :(得分:1)
双下划线表示PHP Magic Method,其中作为单个下划线(仅限惯例)表示类方法或属性是私有的或至少受保护。
例如你期望
protected function _doThis() {}
但不是
public function _doThat() {}