我需要一些帮助来解决我以前没有遇到过的错误,而且似乎在任何地方都找不到。
在 PHP mvc 框架(仅来自教程)中,我有以下内容:
// Initiate the class
$className = 'Controller_' . ucfirst($controller);
if (class_exists($className)) {
$controller = new $className($this->registry);
}
$className 显示正确的类名(大小写也是正确的)。但是当我运行它时,我在 apache 错误日志中得到了这个(没有 php 错误)
[Wed Mar 31 10:34:12 2010] [notice] child pid 987 exit signal Segmentation fault (11)
每次调用的进程 ID 都不同。我在 os x 10.6 上运行 PHP 5.3.0。该站点似乎可以在另一台 Mac 上运行 5.2.11。不太确定下一步该去哪里调试它。我想这可能是一个 apache 设置,也可能是一个 php 错误或代码问题......关于下一步看哪里的任何建议?
注释掉该代码时不会出现该错误。我还有大约 15 个其他 php 站点运行没有问题。包括使用相同基础 mvc 框架的其他人
我记得有完全相同的问题。如果我没记错的话,问题是递归实例化,即 PHP 内存不足,导致分段错误。检查 $className 的实例化是否没有绕圈子。
尝试这个:
我认为你的问题来自你自己的mac。如果您确实从另一台计算机上尝试了该网站并且没有收到错误,那么这意味着您需要重新安装您的 php 包。构建的 php 有时出现问题(可能是更新,或者由于新安装而损坏的链接......)
希望这会帮助你。
尝试在类名变量周围使用花括号。请参阅下面的 $controller 分配行。