2014-02-07 51 views
2

我無法在任何地方找到答案或只是不明白。 因此,我在我的PHP文件中組合了HTML和PHP代碼。在書籍中寫道,<?php ?>中的代碼僅在服務器上執行,並且html將在瀏覽器中顯示。但我不明白這一點:什麼是幾個<?php ?>在一個文件中的邏輯

<?php if ($a = $b) { ?> 
    <p>Text when condition is true</p> 
<?php } else { ?> 
    <p>Text when condition is false</p> 
<?php } ?> 

以上是工作在瀏覽器,但我不明白或者爲什麼不輸出錯誤 至少它應該輸出兩個句子。 對我來說似乎語句被分解成一塊塊,當它應該工作的唯一方法是:

<?php 
if ($a = $b) 
{   
    echo "<p>Text when condition is true</p>" 
} else { 
    echo "<p>Text when condition is false</p>" 
}  
?> 

我怎麼會錯過嗎?

+1

這可以幫助你理解這個概念:http://www.php.net/manual/en/control-structures.alternative-syntax.php – Gohn67

+0

當你有一個字符串有很多單雙引號,你必須逃脫。它看起來好多了,不太容易出現問題,可以用它作爲模板引擎。當然,你最好在PHP之上使用類似Twig的東西。 – ceejayoz

+0

問題實際上是關於使用PHP回顯與意大利麪條編碼。 – Shomz

回答

1

這只是它的工作方式。 PHP是一種模板語言,你可以玩這樣的技巧。

兩個PHP塊之間的一段HTML被解釋爲「輸出這些字符」。

儘管將PHP和HTML的這種混合降到最低程度通常是一個好主意 - 但是任何嚴重的後端代碼都會超出簡單的if/else結構或循環應該位於不同的位置。

+0

謝謝,現在很明顯,我可以做這樣的技巧。 [鏈接到PHP手冊 - 控制結構的替代語法](http://www.php.net/manual/en/control-structures.alternative-syntax.php) – ProgZi

1

前者在需要根據條件輸出多個html時很有用。想象一下你需要加載一個帶有文本的整個div。用html處理更容易處理。對於像你的例子那樣的小條件,第二個例子會更有意義。

相關問題