PHP在function_exists中调用函数

时间:2012-07-10 09:29:13

标签: php function

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

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

2 个答案:

答案 0 :(得分:5)

如果直接在没有if语句的情况下定义函数,则会在解析/编译代码时创建它,因此它可以在整个文档中使用。

如果将它放在if中,它将在执行if语句时创建,因此在定义之前无法使用它。此时,if语句上面的所有内容都已执行。

答案 1 :(得分:0)

在声明它之前调用该函数就是为什么它显示错误。声明你在IF语句之上运行,如:

function get_value(){
//your statements
}

并写

if(condition){
//your statements
}