Я испытываю довольно странную реакцию браузера при вызове этого PHP-скрипта.
<?php
$map = array(
'a' => function(){
print_r('a');
},
'b' => function(){
print_r('b');
}
);
$map($_GET['v']);
?>
Я уже заметил, что там ошибка. Синтаксис вызова неверен, он должен быть таким:
$map[$_GET['v']]();
Все дело в том, что реакция браузера на эту ошибку не такая, какой должна быть.
Результатом выполнения этого сценария является сообщение «Соединение было сброшено». Сервер запущен и работает правильно, так как другие файлы PHP (и этот после исправления ошибки) работают отлично.
Но что на самом деле меня озадачивает, так это то, что делает панель навигации браузера. Когда я набираю URL
localhost/cerdo.php?v=a
содержимое панели меняется на
www.localhost.com/cerdo.php?v=a
Часть www.localhost.com, кажется, происходит только в Firefox. Я попробовал это на Chromium, и, несмотря на то, что отображается похожее сообщение («Данные не получены»), URL-адрес остается прежним.
Что случилось? Есть ли в этом смысл? Разве PHP не должен сообщать о синтаксической ошибке? И с какой стати Firefox перенаправляет на www.localhost.com?