$reset_Array=(); // I forgot to put the keyword "array"
正确的方法应该是
$rest_Array= array();
当我尝试执行错误代码时,为什么Apache
会崩溃。
内部发生了什么?
答案 0 :(得分:2)
我不认为Apache崩溃了。您的PHP执行中止会发生什么,导致您看到500 Internal server error
。这是因为语法
$reset_Array=();
在PHP中无效。 PHP正在尝试解析此行并遇到错误。它返回此错误并执行中止。请尝试以下操作:输入新文件test.php
以下内容:
<?php
$reset_Array=();
?>
使用带有-l
参数的命令行解释器执行此操作( lint - 语法检查):
$ 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遇到此错误,它就无法继续执行脚本,因为它无法解析它。因此,当您尝试在Apache下执行它时会收到错误。
P.S。以上命令显示在unix / linux shell中。如果您在Windows下运行,那么您的提示可能类似C:\Documents >
而不是$
。
答案 1 :(得分:2)
Apache没有崩溃。这只是没有显示错误。
您可以查看error_log
文件中的错误,该文件与您的php脚本位于同一目录中。
您可以在php.ini
文件中查找未注释的行error_reporting = foo
。将foo
更改为E_ALL
。
然后它应该显示错误,而不仅仅是所谓的“崩溃”。