我更喜歡在php標籤之外編寫html,因此eclipse可以用正確的語法高亮顯示html。連接方法很難編寫,並且不會突出顯示(請參閱下面的兩個示例)。PHP/HTML輸出:echo vs return,輸出緩衝和語法高亮挑戰
我對這段長度表示歉意。這些例子非常簡單,所以它應該是一個簡單的閱讀。
我不喜歡這樣,太多的「報價」和$ O公司,並沒有語法高亮顯示!:
<?php
display($something){
$o = '';
$o .= '<div>';
$o .= $something;
$o .= '</div>';
return $o;
}
// I want to be able to do this:
echo display(display('something'));
這給出了一個函數來完成關閉<tag>
甚至增加的機會之後再添加html。 上面的例子在功能上是我期望做的,但由於這些原因('引號',$ o's和語法高亮),我還沒有創建這樣的系統。
下面的例子是我比較喜歡編寫html,但是我不能嵌套輸出,因爲它不會返回!
<?php
function display($something){ ?>
<div>
<?=$something?>
</div>
<?php }
// I'd like to do this, but I can't
display(display('this doesn't return anything to the first function call...'));
這是輸出緩衝進來,我會回來,在第二...
我正在設想:
我想能夠使用func_get_args()
來完成這樣的事情(注意,這將適用於OOP的對象,只是保持簡單在這裏):
<?php
some_panel(title_style_1('Sample Header'),
panel_content(you_tube($vid_id)),
small_img_frame($img_src));
你基本上可以接受任何這些輸出功能並以任何你喜歡的方式嵌套它們。就像你可以把任何<div>
放在任何<p>
之內,反之亦然。唯一的問題是,您必須確保您關閉標籤...並且,在這種情況下,您可以在最後或兒童之間添加任意標記。
這就是輸出緩衝進來
<?php
function display($something){
ob_start(); // <---- Start buffer ?>
<div>
<?=$something?>
</div>
<?php return ob_end_clean(); // <------ Return output
}
// Now I can do this!!!
echo display(display('this should work!'));
而且,鼓聲請....問題:
如果我反覆緩衝潛在的數百甚至數千每個請求的時間,這是一個性能打擊?我讀過警惕輸出緩衝由於帖子:
可靠性:如果其他地方的緩衝區開始,從我讀,這聽起來像這些窩,並有可能發生衝突。
可維護性:如果啓動了緩衝區,則必須保證它會停止。
對於我的系統,如果輸出緩衝啓動,並在同一個函數調用停止,這些事情似乎是確定。這是對潛在的1000個項目的過度迭代,每個開始/停止輸出緩衝對於我擔心的單個<li>
。另外,如果有人知道任何框架或更好的方法來做我想做的事情,任何建議,將不勝感激!
對不起,我真的不能回答。但是如果你做這樣的事情,你有沒有想過使用聰明或小枝?我愛你在那裏的力量。如果你願意,你仍然可以「觀看」驅動。 – 2013-02-28 01:26:47
我不熟悉這些表格。我最初的印象是,他們沒有必要,或者沒有太多幫助。我會研究這些,但是,謝謝! – 2013-02-28 01:31:24
我會建議樹枝,但那只是一個意見。你可以在那裏。並在任何部分生成和注入代碼。你也可以有「塊」的內容,你準備添加填充等我真的很喜歡它。 – 2013-02-28 01:34:01