调用此 PHP 脚本时,浏览器的反应非常奇怪。
<?php
$map = array(
'a' => function(){
print_r('a');
},
'b' => function(){
print_r('b');
}
);
$map($_GET['v']);
?>
我已经注意到那里有一个错误。调用的语法是错误的,应该是这样的:
$map[$_GET['v']]();
问题是浏览器对这个错误的反应不是应该的。
运行此脚本的结果是“连接已重置”消息。服务器已启动并正常运行,因为其他 PHP 文件(以及更正错误后的这个文件)运行良好。
但真正让我困惑的是浏览器的导航栏是做什么的。当我输入网址时
localhost/cerdo.php?v=a
栏的内容变为
www.localhost.com/cerdo.php?v=a
www.localhost.com 部分似乎只发生在 Firefox 中。我已经在 Chromium 上尝试过,尽管显示了类似的消息(“未收到数据”),但 URL 保持不变。
怎么了?这有道理吗?PHP不应该报告语法错误吗?为什么 Firefox 会重定向到 www.localhost.com?