可以說我有兩種情況:在php代碼中嵌入html代碼的推薦方法是什麼?
<?php
print("html code goes here");
?>
v.s
<?php
?>
html codes goes here
<?php
?>
將在第一種情況下的PHP解釋器的性能比第二個是壞? (由於打印功能內部的額外開銷)。
那麼,有沒有人有推薦的方式來插入PHP代碼內的HTML代碼?
可以說我有兩種情況:在php代碼中嵌入html代碼的推薦方法是什麼?
<?php
print("html code goes here");
?>
v.s
<?php
?>
html codes goes here
<?php
?>
將在第一種情況下的PHP解釋器的性能比第二個是壞? (由於打印功能內部的額外開銷)。
那麼,有沒有人有推薦的方式來插入PHP代碼內的HTML代碼?
哦,爲了所有那些稍後編輯您的代碼,請不要將任何大量的HTML代碼放入字符串中並將其回顯出來。用任何語言。
HTML屬於HTML文件,由IDE或編輯器格式化和設置,因此可以讀取。巨大的字符串塊是我見過的HTML錯誤的最大原因。
在這種情況下,性能應該不會太大,但我會假設第二個會更快,因爲它直接流式傳輸到輸出或緩衝區。
如果你希望它是更容易閱讀,使短標記,並寫這樣的:
此外,啓用短標籤,很容易呼應了變量:
Hello, <?= $username ?>
如果您正在使用它來生成某種可重用的庫,還有其他選項。
除非您專門打算這麼做,否則不要將HTML放入PHP代碼中。但是再次100%分離是我推薦的。 如果你把它們混淆在一起,人們將不得不努力工作來理解你的代碼。尤其是那些可能不熟悉php的設計師。
黃金法則是分離的前後端程序在最大程度上有助於各方面。保持他們所屬的地方。 CSS中的樣式,JS中的Java腳本,庫文件夾/文件中的Php,以及使用所需的類/函數。
使用短標籤<?
如果需要(但我不喜歡它:P)<?=
標籤爲輸出echo
。除了短標籤最好是avoided。
爲了獲得更好的維護和可伸縮性,您應該將PHP放在PHP代碼之外。在顯示任何數據之前進行所有必要的數據處理也是非常有益的,以便分離邏輯和表示。
寧可試着去考慮不斷分離你的php和HTML,而應該在分離你的後端邏輯和顯示邏輯的思想中。
MVC模式是想着你的代碼的好方法 - 爲了正確地使用PHP,你必須使用MVC (model-view-controller) pattern
[頭牆上方的頭]我們中的許多人已經從WordPress學習模板,其中沒有嵌入PHP它幾乎不可能做任何事情。我完全理解爲什麼人們會提倡嚴格的MVC或引擎,比如Smarty,但事實是在WordPress開發的情況下,您需要使用php來動態處理輸出。實際上,從這個背景出發,我總是假設php中的'hp'正是出於這個原因。所以我可以編寫'普通'的HTML,做一些服務器端處理,然後返回到HTML。
因此,從我的角度來看,對於您的問題的答案是您的示例的第二個示例更容易閱讀 - 優雅編碼的基礎之一。但它取決於。如果有大量的處理來生成一段簡單的HTML,那麼建立一個大的變量並在最後回顯它可能會更容易。我拋棄了多行echo語句。在這種情況下,我可能會使用一個函數來保持我的HMTL清潔。 WordPress再次做了這麼多事情;例如the_title()
返回一個簡單的字符串,但在返回該字符串之前做了一些處理,因此<h1><? the_title(); ?> </h1>
可以很好地讀取。
這是一個從未正式教過複雜編碼的WordPress開發人員的POV。我希望在這個答案中失去相當數量的聲望點。 [/頭在護欄上方]
我知道這個問題已經四年了,但這是我發現的這個問題的最清晰的迭代。 –
Ouch短標籤。 +1,因爲這通常是一個很好的答案,但應該避免使用短標籤。在這裏閱讀答案http://stackoverflow.com/questions/2476072/tags-not-working-in-php-5-3-1 – Endophage
我與那些沒有得到反標籤的東西。對我而言,唯一的兩個選擇是:缺乏可移植性(您正在編寫一個庫嗎?),並且您無法編寫XML打開標記。這些都是很糟糕的藉口,使用全尺寸標籤混淆html。但這是一個古老的論點,不一定要在這裏進行辯論。 – OverZealous