$reset_Array=(); // I forgot to put the keyword "array"
正确的方法应该是
$rest_Array= array();
为什么Apache
当我尝试执行错误的代码时会崩溃。
内部发生了什么?
我认为 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 下执行它时会收到错误消息。
PS 上面的命令是从 unix/linux shell 显示的。如果您在 Windows 下运行,那么您的提示可能类似于C:\Documents >
而不是$
.
阿帕奇没有崩溃。只是没有显示错误。
您可以查看文件中的错误,该error_log
文件与您的 php 脚本位于同一目录中。
您可以做的是在您的php.ini
文件中查找未注释的行error_reporting = foo
。将其更改foo
为E_ALL
.
然后它应该显示错误,而不仅仅是所谓的“崩溃”。