Есть много вопросов «Почему PHP выдает здесь ошибку?». Что ж, это Я обнаружил следующий код, переделывая код, написанный моим коллегой:
foreach($arr as $key => $value) {http://google.com/
echo $value;
// ...
}
Моя первая мысль: «Ммм ... как неловко, он, должно быть, случайно вставил это туда ...», а затем: «Подождите. ... этот код никак не запускается ... это должно быть синтаксической ошибкой ". И все же:
$ php -l test.php
No syntax errors detected
И действительно, (как и многие другие PHP-коды, которые, казалось бы, не должны запускаться), он запускается в производственной среде без проблем. Так что Я провел небольшое тестирование:
foreach($arr as $key => $value) {http://google.com/ <-- original, no error
foreach($arr as $key => $value) {http: <-- also no syntax error
foreach($arr as $key => $value) {http <-- bingo! "Unexpected T_ECHO..."
Какой маленький лакомый кусочек грамматики PHP дает такие странные результаты?
(Я использую PHP 5.3.5)