PHP-在映射中调用函数后的奇怪行为
当调用这个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
$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