2010-11-03 27 views
1

聲明這大概可能是一個愚蠢的問題,但我所要做的就是讓if語句來執行以下操作:PHP簡單的方法來PHP結合起來,如果用HTML

<?php if ($_SESSION['login'] == true) { ?> 
Display this HTML code (without converting it to PHP echos 
<?php } else { ?> 
Display this instead 
<?php } ?> 

或者我需要回聲,並轉而逃離所有需要的角色,以做我所追求的。

謝謝

+4

如果問題是「這個工作會嗎?」 ...嘗試一下,看看。 – Quentin 2010-11-03 14:09:47

+0

在您的示例代碼中,您錯過了右括號。這個?>應該是這樣的: 2010-11-03 14:23:00

+0

你可能想要爲術語ViewHelper搜索一下。 – Gordon 2010-11-03 14:28:20

回答

7

試試吧。但爲了記錄,這是有效的。其實是解決這個問題的一種慣用方式。

<?php if ($_SESSION['login']) { ?> 
    <p>Display this HTML code</p> 
<?php } else { ?> 
    <p>Display this instead</p> 
<?php } ?> 

縮進可讀性(但是,這與HTML結構縮進混淆,所以也許它不合適)。

另外,該following style經常使用,因爲在最後的唯一的支柱變得孤獨。

<?php if ($_SESSION['login']): ?> 
    <p>Display this HTML code</p> 
<?php else: ?> 
    <p>Display this instead</p> 
<?php endif; ?> 

(在這兩種情況下,我已經移除條件的== true,因爲它是完全多餘的,不要寫== true

+0

您在這兩個示例的最後一行的開始處缺少'<?php' ... – Lizzan 2010-11-03 14:15:42

+0

@Lizzan:已添加。 ;-) – 2010-11-03 14:16:31

+0

啊,太慢了! =)好的答案btw,+1 – Lizzan 2010-11-03 14:17:14

1

查找到HEREDOC or NOWDOC語法

<?php 
if ($_SESSION['login']) { 
    $html =<<<HTML 
Add HTML here 
HTML; 
    echo $html; 
} else { 
    $other_html =<<<'OTHERHTML' 
Add HTML here 
OTHERHTML; 
    echo $other_html; 
?> 
+2

我無法忍受HEREDOC和NOWDOC語法都不具備可讀性。對我來說,看起來像一堆亂碼,你需要逐行閱讀來弄清楚發生了什麼事情(特別是因爲你不能在語法中使用正確的縮進)。而傳統的結構(如問題)通過快速掃描更具可讀性。我不打算-1(因爲它是一個有效的選擇),但我認爲這是值得說的,我認爲這是一個不好的選擇... – ircmaxell 2010-11-03 14:23:52

+0

我承認有一些夸克與HERE/NOW DOC語法結構,對於建設性的批評,我會在未來的項目中記住這一點。聽到誠實的答案總是很好的! – 2010-11-03 14:28:08

1

是的,它的工作原理。

<?php if ($_SESSION['login'] == true) { ?> 
    <span>hello</span> 
<?php } else { ?> 
    <span>going already?</span> 
<?php } ?> 
1

你也可以使用,如果和ENDIF

<?php if (expression) : ?> 
<p>some message here</p> 
<?php else : ?> 
<p>other message</p> 
<?php endif ?> 
1

任何無法在PHP標籤將作爲HTML反正輸出,所以你的原始代碼將正常工作。

<?php if ($_SESSION['login'] == true) { ?> 
<a href="logout.html">Log Out</a> 
<?php } else { ?> 
<a href="login.html">Login</a> 
<?php } ?> 
相關問題