- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我一直在我的 Wordpress 页面上实现某个插件 (dtabs),但在升级到最新版本后,我发现我现在第二次调用名为 dtab_list_tabs() 的主函数时出现错误
。
它的工作方式是,插件获得 include_once'd,但无论您想在布局中放置选项卡多少次,都会调用 main 函数。我对 dtab_list_tabs()
有 2 个这样的调用。
现在的问题是,无论出于何种原因,开发人员决定直接在 dtab_list_tabs()
中包含另一个名为 current_tab()
的函数。因为它是在一个函数内声明的,显然 PHP 会在您第二次调用父函数时尝试重新声明它,这对我来说没有任何意义。
PHP Fatal error: Cannot redeclare current_tab() (previously declared in .../wp-content/plugins/dtabs/dtabs.php:1638) in .../wp-content/plugins/dtabs/dtabs.php on line 1638
该修订版的代码位于 http://plugins.svn.wordpress.org/!svn/bc/208481/dtabs/trunk/dtabs.php
我想弄清楚的是是否有办法告诉 PHP 是的......它有一个内部函数,据我所知这是一个完全有效的 PHP 范例,所以不要t 重新声明它并失败。
至于手头的情况,我已经删除了 current_tab()
,因为它似乎没有被使用。
最佳答案
您可以使用 function_exists()测试是否已经定义了具有该名称的函数。如果您使定义成为条件 ( if(something) { function foo() {...} } ) php 将仅在满足条件时“评估”定义。
function foo() {
if ( !function_exists('bar') ) {
function bar() {
echo 'bar ';
}
}
bar();
}
foo();
foo();
另请参阅:http://docs.php.net/functions.user-defined
(但我会尽量避免这些事情一起发生)
关于php - 在 PHP 的函数内定义函数时,有没有办法避免 "redeclared function" fatal error ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2304938/
我是一名优秀的程序员,十分优秀!