如何避免致命的“PHP 致命错误:无法重新声明[.".


How to avoid fatal "PHP Fatal error: Cannot redeclare[..]"

我希望有在PHP中重新声明特定函数的自由。换句话说,我有包含一些文件的脚本:

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

根据某些条件在此脚本执行中,很明显我们需要加载所有应用程序,而不仅仅是特定文件。这会导致重新声明的错误,因为在引导完整应用程序时,一些函数已经在开始时包含(即bootstrap.inc,common.inc)。什么是解决方案?是否可以在再次包含导入的文件之前删除该文件以避免重新声明错误?我可以控制何时重新声明和何时不在 PHP 中吗?谢谢你的帮助

您不能"取消包含"文件。一旦它进入,它就进入了。

通常,include_oncerequire_once就可以解决问题。PHP 将检查它是否已包含在内,然后再尝试再次包含它。我会确保在所有地点都使用它。如果您调用的函数位于类中,我会查看自动加载作为帮助管理包含的一种方式。