尽管使用require_once(),为什么我会得到重复的定义?

时间:2012-03-22 15:53:21

标签: php

我的defs.php有一个我需要的定义,虽然我使用了require_once,当我尝试访问defs.php时,我得到了一系列重复项,好像之前已经调用了defs.php一样。 另一方面,如果我不调用它,我会得到未定义的use of undefined constant ...

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

您可能正在使用2个单独的文件路径。在做的时候我已经看到了这个问题:

require_once("somefile.php");
require_once("/full/path/to/somefile.php");

我认为php会以一种不会智能地评估同一文件的所有可能路径组合并将其视为相同文件的方式来跟踪所包含的内容。

我尽量避免使用require和includes,将所有内容包装在对象中并使用自动加载器。对于常量,我使用一堆静态属性创建一个对象。