【发布时间】:2013-01-25 18:49:31
【问题描述】:
我在 Windows XP 和 Apache 2.2.21 上使用 Wampserver。
此代码在执行时崩溃:
<?php
class Tax {
public static function load($id)
{
echo $id;
}
}
$tax = Tax::load(1);
?>
此代码在执行时不会崩溃:
<?php
class Tax {
public static function load($id)
{
echo $id;
}
}
$tax = Tax::load(10);
?>
简单来说,如果我将单个数字传递给函数 load,Apache 就会崩溃。但是,如果我将函数名称更改为 load 以外的任何其他内容,它就可以正常工作。另外,我知道该函数不会返回任何内容,但它至少应该仍然可以编译。
这段代码也可以:
Tax::load(5);
我现在有点迷茫,因为我不知道为什么这段代码会导致崩溃。请帮帮我。
编辑
我使用的是 PHP 5.3.10
Apache 错误日志中没有错误
将变量名 $tax 更改为其他任何东西(例如 $a)都可以。我更加困惑了。
我知道 apache 崩溃是因为我收到了一个 Windows 错误。 Apache 服务器会自动重启,并在崩溃后一分钟左右恢复。
【问题讨论】:
-
有点离谱,但 php 不是编译语言,而是解释语言
-
你为什么使用
echo?你应该使用return。另外,您在 Apache/PHP 日志中有什么内容吗? -
您能解释一下“崩溃”的含义吗?您收到任何错误吗?
-
I'm aware the function does not return anything他知道这一点。鲶鱼,这无关紧要,他的意思可能是“解析好”。 -
附言。告诉大家你正在运行的 PHP 女巫版本...