如果我使用function_exists
如下:
if ( ! function_exists( 'get_value' ) ) :
function get_value( $field ) {
..
return $value;
}
endif;
现在,当我在上述函数之前调用同一文件中的函数时,会产生致命错误:
Fatal error: Call to undefined function get_value() ...
但是,如果我在上述函数之后调用它,它将返回该值而没有任何错误。
现在,如果我删除了function_exists条件,即:
function get_value( $field ) {
..
return $value;
}
如果我在同一文档之前或之后调用此函数,它将起作用。为什么会这样?
答案 0 :(得分:5)
如果直接在没有if语句的情况下定义函数,则会在解析/编译代码时创建它,因此它可以在整个文档中使用。
如果将它放在if中,它将在执行if语句时创建,因此在定义之前无法使用它。此时,if语句上面的所有内容都已执行。
答案 1 :(得分:0)
在声明它之前调用该函数就是为什么它显示错误。声明你在IF语句之上运行,如:
function get_value(){
//your statements
}
并写
if(condition){
//your statements
}