PHP:如何避免重新声明函数?

时间:2009-09-05 18:46:49

标签: php function declaration

我倾向于犯错,例如:

  

致命错误:无法在第19行的/var/www/codes/handlers/make_a_thread/get_raw_data_list.php中重新声明get_raw_data_list()(之前在/var/www/codes/handlers/make_a_thread/get_raw_data_list.php:7中声明)

我该如何避免错误?是否可以在声明函数之前创建一个IF子句以检查函数是否已声明?

4 个答案:

答案 0 :(得分:80)

if(!function_exists("get_raw_data_list")) {
... define function here ...
}

http://us.php.net/function_exists

答案 1 :(得分:28)

在包含包含您的功能的文件时,使用require_onceinclude_once而不是includerequire

_onceinclude require 兄弟会强制PHP检查文件是否已被包含/需要,如果是,则不是{再次{1}} / include,从而阻止'无法重新声明x函数... '致命错误。

答案 2 :(得分:8)

function_exists”将告诉您是否已声明某个功能。虽然我怀疑你可能不止一次包含文件。当您包含文件时,您使用的是require_once或include_once还是只需要/ include?

答案 3 :(得分:5)

如果您正在处理类method_exists(),那么您可能正在寻找:

if(!method_exists(__CLASS__, 'function_name')){
    function function_name(){

    }
}

这将检查当前的Class,以便在尝试声明它之前使函数function_name不存在