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

hhh*_*hhh 32 php declaration function

我倾向于得到如下错误:

致命错误:无法重新声明第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子句以检查函数是否已声明?

Doo*_*taz 85

if(!function_exists("get_raw_data_list")) {
... define function here ...
}
Run Code Online (Sandbox Code Playgroud)

http://us.php.net/function_exists

  • 请注意,此函数应在函数****之前添加** (3认同)

kar*_*m79 28

使用require_onceinclude_once与包含您的函数的文件相对includerequire包含.

_once的兄弟姐妹includerequire检查将强制PHP,如果该文件已被列入/必需的,如果是这样,不是include/ require一遍,从而防止" 无法重新声明X功能... "致命错误.

  • 虽然karim79的答案可能会解决操作问题,但实际上并没有解决问题.我认为Dooltaz的答案是正确的. (3认同)

sma*_*007 8

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


Ser*_*gan 5

如果你正在处理类method_exists()可能是你正在寻找的:

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

    }
}
Run Code Online (Sandbox Code Playgroud)

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