2016-09-14 6 views
0

Я получил эту функциюсдержанное зарезервированное ключевое слово сбрасывает ошибку. Зачем?

//admin 
$router->route['/admin']->route['default'] = function() { //line 51 
    if (isLoggedIn())          //line 52 
     goTo('CMS');          //line 53 <--- 
    else             //and so on 
     goTo('login'); 
}; 

но у меня ошибка парсинга: ошибка синтаксиса, неожиданный «(», ожидая T_STRING в /path/index.php на линии 53
Что такое ошибка

+3

потому что 'goto' является конструкцией языка PHP, а не функцией: http://php.net/goto. вы не можете заменить/переопределить языковые конструкции своими собственными версиями, например. 'function echo ($ x) {print ($ x); } echo ('hi mom') 'будет производить ту же самую ошибку, что и у вас. –

+0

, но я вернул его на верблюдах. Ошибка тоже отличается, поэтому (по моему скромному мнению) это не проблема –

+1

так? только имена переменных php чувствительны к регистру. большинство остальных - нет. –

ответ

2

goto зарезервированного слова вы не можете нЕ переопределения это, независимо от того, сколько вы не возиться с прописным/Строчными вариациями:.

php > function goto() { echo 'foo'; } 
PHP Parse error: syntax error, unexpected 'goto' (T_GOTO), expecting '(' in php shell code on line 1 
php > function goTo() { echo 'foo'; } 
PHP Parse error: syntax error, unexpected 'goTo' (T_GOTO), expecting '(' in php shell code on line 1 
php > function GOTO() { echo 'foo'; } 
PHP Parse error: syntax error, unexpected 'GOTO' (T_GOTO), expecting '(' in php shell code on line 1 

вы должны никогда иметь пчел n в состоянии определить вашу функцию goTo.

+0

Значит ли это, что парсер нечувствителен к регистру? – peter

+0

только для переменных. '$ foo' и' $ FOO' - это совершенно разные вещи. 'function foo()' и 'function FOO()' одинаковы. –

+0

О, я вижу. Мне все еще кажется странным. – peter

0

Необходимо переименовать goTo() *, например. в forwardTo(), потому что goto зарезервирован PHP: http://php.net/goto

Странно, что PHP не предупреждает вас об этом.

Кроме того, я рекомендую следовать стандартам кодирования PSR: http://www.php-fig.org/psr/psr-2/

* Хороший вопрос от @ питер-Фитэрстоун: имена функций нечувствительны к регистру.

Надеюсь, это поможет

 Смежные вопросы

  • Нет связанных вопросов^_^