2013-12-20 151 views
-3

這是我的if語句。我試着有兩種不同的選擇。一種是如果用戶登錄,另一種是當然不是。 對於我的生活,我無法讓這些工作。這是一個Word新聞網站。這裏的任何幫助將是非常棒的。這是我的。if和else語句不起作用

<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> 

謝謝大家。你的代碼沒有工作,但你們,女孩真的幫助我朝着正確的方向發展。無論如何,這是對我有用的東西。

「級=」 BTN BTN-成功「>
+0

您是否收到異常?或者它只是沒有像你期望的那樣評價? – alan

+0

你的語法不好。你的else語句不在php標籤中。 –

+0

我得到的只是帶有以下任何代碼更改的白色屏幕。 –

回答

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語法不需要大括號。

+0

混合'<?'(短標籤)和'<?php'語法也不是那麼明智。 – kapa

+0

雖然你的代碼沒有工作,但它確實給我在正確的方向,我感謝你和其他人的大力幫助。 –

5

你混合the two variations of if,即使:

在同一控制塊混合語法不支持

它可以是

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

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

選擇一個並使用它。

1

啓動if結構':' ..then將其更改爲'{''}' 閱讀本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> 
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> 
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 ; 
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'; 
} 
?> 
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> 
+0

你似乎在'endif'附近留下了一個額外的花括號。 – adamdunson

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; 
?> 
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> 
+0

非常感謝所有。然而,我嘗試每個人的新代碼,所有我得到的是白色的屏幕。但是這裏的代碼工作..