正确使用If语句的方法

时间:2014-10-21 17:29:50

标签: php wordpress if-statement

需要帮助了解正确的使用方式" if elseif else"声明。下面的代码A有效,但它是否正确?我是否可以用" elseif&#34 ;?结束声明?或者是"如果"语句应该以" endif"或"否则" ?

代码A:此代码有效

但请注意,它不会以" endif"或"否则"。

if ( is_page( 'contact' ) ) { get_template_part('inc/contact'); }
elseif ( is_page( 'policy' ) ) { get_template_part('inc/policy'); }
elseif ( is_page( 'about' ) ) { get_template_part('inc/about'); }
elseif ( is_page( 'terms' ) ) { get_template_part('inc/terms'); } 
?>


是全部" if语句"应该结束" endif"?如果是的话,你能告诉我代码吗? 在下面的CODE B中使用" endif"导致白屏错误。

代码B:endif不起作用

if ( is_page( 'contact' ) ) { get_template_part('inc/contact'); }
elseif ( is_page( 'policy' ) ) { get_template_part('inc/policy'); }
elseif ( is_page( 'about' ) ) { get_template_part('inc/about'); }
elseif ( is_page( 'terms' ) ) { get_template_part('inc/terms'); } 
endif;
?>


是最后一个" elseif"应该是"否则"代替?如果是的话,你能告诉我代码吗? 在下面的CODE C中使用" else"导致白屏错误。

代码C:"否则"而不是" elseif"不起作用

if ( is_page( 'contact' ) ) { get_template_part('inc/contact'); }
elseif ( is_page( 'policy' ) ) { get_template_part('inc/policy'); }
elseif ( is_page( 'about' ) ) { get_template_part('inc/about'); }
else ( is_page( 'terms' ) ) { get_template_part('inc/terms'); }
?>

4 个答案:

答案 0 :(得分:3)

endif仅用于"替代语法" http://php.net/manual/en/control-structures.alternative-syntax.php 我个人不会使用它,但它取决于你。

根据你的"否则"问题..这是可选的。它的故障安全" ...如果没有其他匹配则执行。如果你没有"否则"并且你所有的其他人都失败了,那么在那个代码块中什么都不会做。

答案 1 :(得分:2)

您可以使用:endif OR 大括号({}),但不能同时使用两者。这些语法中的任何一个都可以使用

if( something_is() ) :
  do something;
endif;

if( something_is() ) {
  do something;
}

第二种实际上是首选方式,因为它几乎所有代码编辑器都支持这种语法,因此更容易调试。第一个很难调试,因为大多数代码编辑器都不支持它

答案 2 :(得分:0)

人们倾向于在基于php的模板中使用这种语法,因为它看起来像是模板

   <? if (something) : ?>
    <b>Yea!</b>
    <? else: ?>
    <p>nothing</p>
    <? endif; ?>

至于后端内容,建议使用此语法     

if (something) { bar(); } 
elseif (other)
{
  yes();
}
?>

php也允许这个

if (something) myThing() elseif (that) other(); else doNot();

底线,你只能组合一种语法

答案 3 :(得分:0)

我会说Code A. 当您想说:

时使用else
if(/*option;*/)
{
//code
}
elseif(/*another option;*/)
{
//code
}else /*Any other options beside the above*/ {/*code;*/}

但是在你的代码中,你在最后一个条件中有一个特例。所以CodeA。