2

在我的 PHP 应用程序中,我多次调用require_once. 在我的开发 PC 上,这可以正常工作,并且不会尝试多次包含同一个文件。但是,当我将其移至生产服务器时,出现错误

无法重新声明类 myClass

在搜索代码后,我发现这发生在调用 之后require_once,所以它一定是导致它的原因。

我搜索了整个项目,这个类肯定只在一个文件中声明,而且它只包含在require_once. 是否有一些奇怪的 PHP 配置会使require_once生产服务器上的行为有所不同?

谢谢

4

2 回答 2

0

将以下内容放在包含的类文件的顶部:

if( class_exists( "<yourclassname>"))
{
throw new Exception("Class already defined");
}

您现在将收到一条明确的错误消息,其中重新调用了该类。

于 2013-07-11T08:51:32.933 回答
0

好的,这个令人讨厌的问题可能是由我知道的两件事之一引起的:

符号链接;如果从文件和指向该文件的符号链接加载

在 OS X(可能还有 Windows)上,文件名不区分大小写;PHP require_once 不是

这让我今天困惑了几个小时。我通常在 Linux 中工作,但我被迫使用 Mac,这成为一个问题。

于 2013-07-19T00:44:51.310 回答