我正在使用include_once但仍然无法重新声明。我知道函数存在,这就是我使用include_once的原因

时间:2016-12-28 17:49:39

标签: php wordpress redeclare include-once

好的我正在尝试修改WP插件中的一些代码。该插件为此声明了一个文件:

// overwrite hooks 
$plugin_dir = trailingslashit(dirname(dirname(__FILE__)));
if(file_exists($plugin_dir . "auto_overwrite.php")){
include_once($plugin_dir . "auto_overwrite.php");
}

所以我在上面的目录中创建了一个名为auto_overwrite.php的文件,并包含了我想要更改的函数。

我遇到的问题是我仍然收到错误:

致命错误:无法重新声明listing_tabs()(之前在....中声明。

我认为include_once的想法是不包含已经定义的函数。

另一个函数位于名为meta_boxes.php的文件中,它也通过

调用
include_once("meta_boxes.php");

我对PHP比较新,所以也许我错过了什么,非常感谢任何帮助。谢谢!

编辑:从下面的答案我看到我不能只调用函数include_once只限制特定文件被加载多次。基本上我正在尝试修改此文件下游指定的函数。是否有可能做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以检查是否已定义某个功能,如果没有这样做,请执行此操作...

 if (!function_exists('listing_tabs')){
    // include file with function
 }