Я делаю MVC в PHP, и мне бы хотелось иметь метод list () внутри моего контроллера, чтобы иметь URL / entity / list / parent_id, чтобы показать все «x», принадлежащие этому родителю.
Однако у меня не может быть метода, называемого list (), поскольку это зарезервированное ключевое слово PHP.
Например, в VB.Net, если мне нужно что-то с именем, которое сталкивается с зарезервированным ключевым словом, я могу обернуть его в [reserved_name].
В SQL вы можете сделать то же самое.
В MySQL вы используете обратную сторону `
Есть ли какой-то синтаксис в PHP, который указывает «рассматривать это как идентификатор, а не как ключевое слово»?
(ПРИМЕЧАНИЕ. Я знаю, что могу использовать маршруты для этого, не имея метода list (). Я также могу просто вызвать действие что-то еще. Вопрос в том, обеспечивает ли PHP такой вид экранирования)
С именами переменных вы можете использовать знаки скобки:
${'array'} = "test"; echo ${'array'};
Но PHP не предоставляет метод для экранирования имен функций.
Если вы хотите «определяемый пользователем» способ обойти это, ознакомьтесь с этим комментарием:
Вы можете использовать __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(); } }