bma*_*man 2 php function reserved-words
我看到一个名为"do"的方法库
public function do
Run Code Online (Sandbox Code Playgroud)
完全错误解析器解析错误:语法错误,意外T_DO,期待T_STRING ...
//same on call
$obj->do()
Run Code Online (Sandbox Code Playgroud)
解析错误:语法错误,意外T_DO,期待T_STRING或T_VARIABLE或'$'in
Gearman顺便使用"do"功能.
Chr*_*ker 11
"do"是保留的关键字:http://www.php.net/manual/en/reserved.keywords.php
在同一页面上,在评论中,您会看到用户提及解决此问题的方法.请记住,必须小心使用此方法:
// Now define a __call() method (requires PHP > 5.2.3 to take effect)
public function __call($func, $args)
{
switch ($func)
{
case 'list':
return $this->ls((isset($args[0]))? $args[0]: null);
break;
case 'unset':
return $this->rm($args[0]);
break;
default:
trigger_error("Call to undefined method ".__CLASS__."::$func()", E_USER_ERROR);
die ();
}
Run Code Online (Sandbox Code Playgroud)
所以你看,你可以do通过使用__call重载在任何类中使用方法(或其他一些保留字).在外部,这种方法与传统定义的方法无法区分.
命名一个关键字函数是个坏主意.它也可能更糟糕,因为do它不是很具描述性.
选择一个更好的名字.
| 归档时间: |
|
| 查看次数: |
832 次 |
| 最近记录: |