if和else语句不起作用

时间:2013-12-20 13:31:30

标签: php html wordpress if-statement control-structure

这是我的if语句。我试图有两个不同的选择。一种是用户登录,另一种是当然不是。 对于我的生活,我无法让这些工作。这是一个Word Press网站..这里的任何帮助都会很棒。这就是我所拥有的。

<div class="btn btn-success">
        <?php if( ! is_user_logged_in()): ?> 
        <a href="<?php echo $submit_question_link ?>"<?php _e('Ask a question','dwqa') ?></a>           
    } else { 
        <?php add_modal_login_button( $login_text = 'Login to Ask a Question', $logout_text = 'Logout', $logout_url = '', $show_admin = false ); ?><?php endif; } ?>            
            </div>

谢谢大家。没有你的代码有效,但你们,女孩们真的帮助我朝着正确的方向前进。无论如何,这对我有用。

                                                                                                                       “class =”btn btn-success“&gt;

9 个答案:

答案 0 :(得分:5)

您正在混合the two variations of if,即使:

  

不支持在同一控制块中混合语法。

它可以是

if (condition) :
    ...
else :
    ...
endif;

if (condition) {
   ...
}
else {
   ...
}

选择一个并使用它。

答案 1 :(得分:1)

您使用if启动':'结构..然后将其更改为'{''}' 有关详细信息,请阅读此http://www.php.net/manual/en/control-structures.alternative-syntax.php

以下是解决方案:

<div class="btn btn-success">
     <?php if( ! is_user_logged_in()): //start condition ?> 
        <a href="<?php echo $submit_question_link ?>"<?php _e('Ask a question','dwqa') ?></a>           
     <?php else: // else ?>
        <?php add_modal_login_button( $login_text = 'Login to Ask a Question', $logout_text = 'Logout', $logout_url = '', $show_admin = false ); ?>
      <?php endif; //close 'if' condition ?>
</div>

答案 2 :(得分:1)

  • 你不能混合语法,所以你不能混合冒号和花括号。
  • 你的逻辑似乎是错的。我不使用WordPress,但我认为is_user_logged_in()会为登录用户返回true
  • 你在错误的地方使用php开启和关闭标签。

所以它会是这样的:

<?php
if( is_user_logged_in() ):
?> 
    <a href="<?php echo $submit_question_link ?>"<?php _e('Ask a question','dwqa') ?></a>
<?php
else:   
    add_modal_login_button( $login_text = 'Login to Ask a Question', $logout_text = 'Logout', $logout_url = '', $show_admin = false );
endif;
?>

答案 3 :(得分:1)

        <div class="btn btn-success">
        <?php if( ! is_user_logged_in()): ?> 
        <a href="<?php echo $submit_question_link ?>"<?php _e('Ask a question','dwqa') ?></a>           
     <? else: ?>
        <?php add_modal_login_button( $login_text = 'Login to Ask a Question', $logout_text = 'Logout', $logout_url = '', $show_admin = false ); ?><?php endif; ?>            
            </div>

你的语法完全错误。您的} else {甚至不在PHP标记中,并且您使用的alternative语法不需要大括号。

答案 4 :(得分:0)

尝试没有:在你的背后。

你错过了if {,因为你有一个结束。

并且您不需要endif;,因为来自else部分的结束}将结束if。

<div class="btn btn-success">
        <?php if( ! is_user_logged_in()) { ?> 
        <a href="<?php echo $submit_question_link ?>"<?php _e('Ask a question','dwqa') ?></a>           
    <?php } else { 
       add_modal_login_button( $login_text = 'Login to Ask a Question', $logout_text = 'Logout', $logout_url = '', $show_admin = false ); 
    } ?>            
            </div>

答案 5 :(得分:0)

<?php if( ! is_user_logged_in()): ?> 
        <a href="<?php echo $submit_question_link ?>"<?php _e('Ask a question','dwqa') ?></a>           
    else : 
        <?php add_modal_login_button( $login_text = 'Login to Ask a Question', $logout_text = 'Logout', $logout_url = '', $show_admin = false ); ?><?php endif; >            
            </div>

如果您的声明与:一起使用,则无法使用大括号。

正确的方式:

if {} else {} 

if :  else : endif ;

答案 6 :(得分:0)

你的语法错误。 改变:

} else {

<?php else : ?>

但是,重写整个事情会更好:

<?php
$btn = '<div class="btn btn-success">';
if(is_user_logged_in() !== true) {
   //logic here
   $btn .= '<a href="blahblah...';
} else {
 //else logic here
   $btn .= 'blah blah, else logic here';
}
?>

答案 7 :(得分:0)

代码可以是这样的

<div class="btn btn-success">
    <?php if( ! is_user_logged_in()): ?> 
        <a href="<?php echo $submit_question_link ?>"<?php _e('Ask a question','dwqa') ?></a>           
    <? else: ?>
        <?php add_modal_login_button( $login_text = 'Login to Ask a Question', $logout_text = 'Logout', $logout_url = '', $show_admin = false ); ?><?php endif; ?>            
</div>

答案 8 :(得分:0)

您遇到语法错误。试试这段代码

<div class="btn btn-success">   
    <?php if( ! is_user_logged_in()): ?>
        <a href="<?php echo $submit_question_link ?>"<?php _e('Ask a question','dwqa') ?></a> 
    <?php else:
        add_modal_login_button( $login_text = 'Login to Ask a Question', $logout_text = 'Logout', $logout_url = '', $show_admin = false );
        endif;
    ?>         
</div>