如果我使用function_exists如下:
if ( ! function_exists( 'get_value' ) ) :
function get_value( $field ) {
..
return $value;
}
endif;
Run Code Online (Sandbox Code Playgroud)
现在,当我在上述函数之前调用同一文件中的函数时,会给出致命的错误:
Fatal error: Call to undefined function get_value() ...
Run Code Online (Sandbox Code Playgroud)
但是,如果我在上述函数之后调用它,它将返回值而没有任何错误.
现在,如果我删除了function_exists条件,即:
function get_value( $field ) {
..
return $value;
}
Run Code Online (Sandbox Code Playgroud)
然后,如果我在同一文档之前或之后调用此函数,它将起作用.为什么会这样?
如果直接在没有if语句的情况下定义函数,则会在解析/编译代码时创建它,因此它在整个文档中可用.
如果将它放在if中,它将在执行if语句时创建,因此在定义之前无法使用它.此时,if语句上面的所有内容都已执行.