$reset_Array=(); // I forgot to put the keyword "array"
正确的方法应该是为什么Apache在执行下面的PHP代码时崩溃?
$rest_Array= array();
为什么Apache
崩溃当我尝试执行错误的代码。
内部发生了什么?
$reset_Array=(); // I forgot to put the keyword "array"
正确的方法应该是为什么Apache在执行下面的PHP代码时崩溃?
$rest_Array= array();
为什么Apache
崩溃当我尝试执行错误的代码。
内部发生了什么?
我不认为Apache崩溃。发生什么是您的PHP执行中止,导致您看到500 Internal server error
。这是由于以下事实:语法
$reset_Array=();
在PHP中无效。 PHP试图解析这一行并遇到错误。它返回这个错误并且执行中止。请尝试以下操作:将在一个新的文件test.php
如下:
<?php
$reset_Array=();
?>
并与一个命令行解释器-l
参数(皮棉 - 语法检查)执行此:
$ php -l test.php
你会得到以下错误:
$ php -l publish/test.php
PHP Parse error: parse error in test.php on line 3
Errors parsing test.php
一旦PHP遇到此错误,它不能共同ntinue执行脚本,因为它无法解析它。因此,当您尝试在Apache下执行它时收到错误。
P.S.以上命令显示在unix/linux shell中。如果你在windows下运行,那么你的提示可能是C:\Documents >
而不是$
。
感谢您的意见。彻底研究了我发现的代码是导致崩溃的其他内容。是的,“error_reporting”帮助我调试实际问题。 –
Apache没有崩溃。这只是没有错误正在显示。
您可以看看error_log
文件中的错误,它与您的php脚本位于同一目录中。
你可以做的是看看你的php.ini
文件中的未注释行error_reporting = foo
。将foo
更改为E_ALL
。
然后它应该显示错误,而不仅仅是所谓的“崩溃”。
请注意,这_doesn't_显示解析错误 - 我需要在开始执行脚本之前完全解析文件。由于它是一个解析错误,它永远不会像执行一样。 [见这里](http://stackoverflow.com/a/10667432/156755)。要启用显示的分析错误,您需要在您的ini文件中执行此操作 – Basic
您正在使用哪个版本的PHP(5.2.x?)以及哪个平台(Linux?Windows?)? – Femi
我发现很难相信Apache崩溃。很可能,PHP由于错误而中止执行。你应该得到'500内部服务器错误'。 –