在IF:ENDIF控制结构中使用Exit

时间:2014-11-07 15:39:59

标签: php wordpress

这是一个虚构的例子。我想了解“在此代码中使用EXIT时会发生什么”:

function my_template_redirect() {
    $page = get_query_var('pagename'); //get some value
    if ( $page == 'products' ): //compare with something
        //show products
        EXIT;
    elseif ( $page == 'product' ): //compare "else"
        //show product
        EXIT;
    endif;
}
add_filter( 'template_redirect', 'my_template_redirect' );

确定。一步一步执行(我自己的逻辑版本)

|-code executing
|-filter callback my_template_redirect()
|-if start (or else)
   |-exit
   |-start execute new template

退出电话后会发生什么?控制结构IF:ENDIF自动关闭?或者仍然在新代码中打开?这是组织代码的坏方法吗?

提前致谢!

PS我正在使用WP示例来更好地理解我糟糕的英语:)

1 个答案:

答案 0 :(得分:1)

如果您阅读PHP docs on exit(),您会发现exit完全终止了当前的脚本。

然而:

  

即使调用exit,也将始终执行关闭函数和对象析构函数。