我一直在Wordpress的页面上实现某个插件(dtabs),但在升级到最新版本之后,我发现第二次调用main函数时我现在出错了dtab_list_tabs().
它的工作方式是,插件获取include_once'd但是主要函数被调用,但是很多时候你想在你的布局中放置标签.我有2个这样的电话dtab_list_tabs().
现在,问题是,无论出于何种原因,开发人员决定在dtab_list_tabs()被调用的内部直接包含另一个函数current_tab().因为它是在一个函数中声明的,显然PHP会在第二次调用父函数时尝试重新声明它,这对我没有任何意义.
PHP致命错误: 无法在1638行的.../wp-content/plugins/dtabs/dtabs.php中重新声明current_tab()(之前在.../wp-content/plugins/dtabs/dtabs.php:1638中声明)
该修订的代码位于http://plugins.svn.wordpress.org/!svn/bc/208481/dtabs/trunk/dtabs.php
我想弄清楚的是,是否有办法告诉PHP,是的...它有一个内部函数,据我所知,这是一个完全有效的PHP范例,所以不要重新声明它并失败.
至于手头的情况,我已经删除,current_tab()因为它似乎没有被使用.
您可以使用function_exists()来测试是否已定义具有该名称的函数.如果你使定义成为条件(if(something){function foo(){...}})php将仅在条件满足时"评估"定义.
function foo() {
if ( !function_exists('bar') ) {
function bar() {
echo 'bar ';
}
}
bar();
}
foo();
foo();
Run Code Online (Sandbox Code Playgroud)
另见:http://docs.php.net/functions.user-defined
(但我会尽量避免这些事情)
| 归档时间: |
|
| 查看次数: |
3004 次 |
| 最近记录: |