PHP-在映射中调用函数后的奇怪行为

PHP-在映射中调用函数后的奇怪行为,php,firefox,localhost,anonymous,Php,Firefox,Localhost,Anonymous,当调用这个PHP脚本时,我在浏览器中遇到了一个非常奇怪的反应 <?php $map = array( 'a' => function(){ print_r('a'); }, 'b' => function(){ print_r('b'); } ); $map($_GET['v']); ?> 问题是,

当调用这个PHP脚本时,我在浏览器中遇到了一个非常奇怪的反应

<?php
    $map = array(
        'a' => function(){
                print_r('a');
            },

        'b' => function(){
                print_r('b');
            }
    );  
    $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?

重定向与您的代码没有任何关系。您的环境设置如何,例如您是否使用Xampp等。?在这种情况下,请确保您的web根目录中有index.php或.htaccess或任何其他包含重定向脚本的内容。

如果这不是您第一次使用开发环境,请忽略以下内容:

我认为你的问题是:操作系统无法识别域名(操作系统扩展了域名)。 在Windows下,您可以在此处找到“主机”文件:

%SYSTEMROOT%\System32\drivers\etc\'

将此行添加到文件末尾:

127.0.0.1本地主机

(也许你应该重新启动计算机。)
它应该可以解决您的问题,PHP不应该报告语法错误吗?

否。如果PHP没有报告
$map($\u GET['v'])
as语法错误是因为它希望代码在语法上有效。所以它最终执行了一些你意想不到的非常奇怪的东西。这会导致将浏览器重定向到无法解释的位置


这里的关键是理解什么是
$map($\u GET['v'])实际上是指。

您的代码很好。。看到这一点,但检查您是否正在代码中执行其他操作!!请显示其他代码块可能是错误发生的原因。脚本仅由显示的代码组成,因此没有其他可能的原因。您的重定向或类似内容注意:上述代码仅在PHP 5.3+下正确;如果您使用的是早期版本,则无法使用匿名函数。令人惊讶的是,使用PHP5.3.1时,我得到了“致命错误:函数名必须是prueba.PHP第12行的字符串”。localhost绑定为127.0.0.1。正如我所说的,其他脚本的加载非常完美。问题是重定向只在代码中发生。如果我只是纠正语法错误,则文件加载正确。
www.localhost.com/cerdo.php?v=a