Dan*_*ola 4 php escaping reserved-words identifier keyword
我在PHP中做MVC,我想在我的Controller中有一个list()方法,以获得URL/entity/list/parent_id,以显示属于该父级的所有"x".
但是,我不能有一个名为list()的方法,因为它是一个PHP保留关键字.
例如,在VB.Net中,如果我需要一个名称与保留关键字冲突的东西,我可以将它包装在[reserved_name]中.
在SQL中,您可以执行相同的操作.
在MySQL中,你使用反引号`
PHP中是否有一些语法指定"将其视为标识符,而不是关键字"?
(注意:我知道我可以使用路由来执行此操作而不使用list()方法.我也可以简单地将操作调用为其他内容.问题是PHP是否提供了这种转义)
小智 5
您可以使用__call()方法来调用_list()实现您的功能的私有或公共方法.
/**
* This line for code assistance
* @method array list() list($par1, $par2) Returns list of something.
*/
class Foo
{
public function __call($name, $args)
{
if ($name == 'list') {
return call_user_func_array(array($this, '_list'), $args);
}
throw new Exception('Unknown method ' . $name . ' in class ' . get_class($this));
}
private function _list($par1, $par2, ...)
{
//your implementation here
return array();
}
}
Run Code Online (Sandbox Code Playgroud)