我正在使用PHP进行MVC,我希望在我的Controller中有一个list()方法,以获得URL / entity / list / parent_id,以显示属于该父级的所有“x”
但是,我不能有一个名为list()的方法,因为它是一个PHP保留关键字。
例如,在VB.Net中,如果我需要一个名称与保留关键字冲突的东西,我可以将它包装在[reserved_name]中。
在SQL中,你可以做同样的事情
在MySQL中,你使用反引号`
PHP中是否有一些语法指定“将其视为标识符,而不是关键字”?
(注意:我知道我可以使用路由来执行此操作而无需使用list()方法。我也可以简单地将操作调用为其他内容。问题是PHP是否提供了这种转义)
答案 0 :(得分: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();
}
}
答案 1 :(得分:3)
使用变量名称,您可以使用括号:
${'array'} = "test";
echo ${'array'};
但PHP没有提供转义函数名的方法。
如果您想要一种“用户定义”的解决方法,请查看此评论: