2014-11-23 101 views
0

我想有在PHP中重新声明特定函数的自由。换句话说,我有脚本,其中包括一些文件:如何避免致命的“PHP致命错误:无法重新声明[..]”

include_once(dirname(__FILE__) . '/../drupal/includes/bootstrap.inc'); 
include_once(dirname(__FILE__) . '/../drupal/includes/common.inc'); 

在在某些条件下这个脚本执行后来,很显然,我们需要加载的所有应用程序,不仅具体的文件,但是。这会导致重新声明的错误,因为当引导完整的应用程序时,一些功能已经包含在开头(即bootstrap.inc,common.inc)。什么是解决方案?在再次包含它之前可以删除导入的文件以避免重新声明错误?我可以控制决定什么时候它的okey重新声明和何时不在PHP中? 谢谢你的帮助

+1

可能是http://stackoverflow.com/questions/2640958/redefining-php-function的副本? – Gabriel 2014-11-23 14:02:34

+0

你的意思是同一个函数是在多个文件中定义的吗?如果是这样,为什么?这些声明有什么不同?如果是这样,为什么他们有相同的名字?如果您更好地构建代码,那么随着您增长和维护应用程序,您可能会避免将来不仅仅是此问题,而且还会避免其他许多问题。 – IMSoP 2014-11-23 14:08:14

+0

IMSoP,重新声明是一样的......关于你关于结构的观点,我正在整合独立的应用程序,我没有太多的结构控制。我希望PHP可以给我这种控制......如果我知道重新声明和它的罚款,那么PHP先生请让脚本运行...为什么致命的错误? – latvian 2014-11-23 14:34:47

回答

3

你不能“取消”一个文件。一旦进入,它就进入了。

通常,include_oncerequire_once会起作用。在尝试再次包含它之前,PHP会检查它是否已包含在内。我会确保它在所有地方都被使用。如果你打电话的功能是在课堂内,我会检查autoloading作为帮助管理你的包含的一种方式。

相关问题