3

我刚刚意识到一些 PHP 不能在一台服务器上正确执行,但在另一台服务器上却可以。

他们都运行带有 PHP PHP 5.3.2 的 Ubuntu 10.04(带有 Suhosin-Patch (cli) 的 PHP 5.3.2-1ubuntu4.2(构建时间:2010 年 5 月 13 日 20:03:45))

我正在测试使用:

$f = function() {};

var_dump($f);
die();

在工作的服务器上,结果是:

对象(闭包)#1 (0) { }

在没有的情况下,结果是:

未知:0

我错过了什么?

[编辑]

在同一个文件中有 2 个闭包似乎存在问题:

<?php
$f = function() {};
$f2 = function() {};

var_dump($f);
var_dump($f2);
die();

输出:

UNKNOWN:0
对象(闭包)#1 (0) {}

4

1 回答 1

2

在更多的谷歌搜索和 ircmaxell 在 phpinfo 的提示之后,我得到了关于 eaccelerator 的提示。

正确运行代码的服务器正在运行 eaccelerator 0.9.6.1,而没有工作的服务器正在使用 0.9.6。

从源代码编译新版本,它解决了我的问题。

谢谢!

于 2010-08-09T13:08:34.760 回答