3

如果我使用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;
}

然后,如果我在同一文档中之前或之后调用此函数,它将起作用。为什么会这样?

4

2 回答 2

5

If you define the function directly without the if statement, it will be created while parsing / compiling the code and as a result it is available in the entire document.

If you put it inside the if, it will be created when executing the if statement and so it is not possible to use it before your definition. At this point, everything written above the if statement is executed already.

于 2012-07-10T09:34:37.400 回答
0

您在声明它之前调用该函数,这就是它显示错误的原因。在 IF 语句上方声明您的功能,例如:

function get_value(){
//your statements
}

和写

if(condition){
//your statements
}
于 2012-07-10T09:38:58.280 回答