關于Php要不要使用模板一直被大家討論,支持的說使用模板更簡潔,易與前端工程師交流。反對的說Php本身就支持內嵌語法,沒必要再用個模板,降低性能。
其實使用Php的短語法,直接嵌入也不是很難看,該支持的循環啥的都支持,再配合PhpStorm神器的Live Template,連Shift都不用按了,很省事。(其它IDE也應該有相應的代碼片段功能)
先看看效果:
//輸出 [stv]<?= $x ?>//if-else [stif]<? if ($x > $y): ?> <h4>x is greater than y</h4>//[stelif]<? elseif ($x == $y): ?> <h4>x is equal to y</h4><? else: ?> <h4>x is less than y</h4><? endif ?>//for [stfor]<? for ($i = 0; $i < 10; $i++): ?> <h7><?= $i ?></h7><? endfor ?>//foreach [stfore]<? $list = array('a', 'b', 'c', 'd', 'e') ?><? foreach($list as $val): ?>a=<?= $val ?><? endforeach ?>//foreach key=>html' target='_blank'>value [stforek]<? foreach(array('a'=>1,'b' => 2) as $key => $var): ?><?= $$key ?>=><?= $var ?><? endforeach ?>//while [stw]<? while ($i < 10): ?> <h7><?= $i ?></h7> <? $i++ ?><? endwhile ?>//switch(這個比較討厭,因為后面要跟break)[stsw]<? switch($i): case 0: echo '0'; break; case 1: echo '1'; break; case 2: echo '2'; break; default: echo 'N/A';endswitch ?>其中switch因為后面要跟break,所以就沒有分行,而是用一個php塊。不過因為短語法中的if-else也很直觀,可以代替switch。我在phpstorm中還特地增加了<? elseif($x == 1): ?>的片段,方便增加判斷邏輯。
前提是要在php.ini中打開支持,short_open_tag = On。在SAE也支持,其它云網站還沒試過。另外,PHP5.4以后,不用設置short_open_tag=on,<?= ?>總是可用,(但<? ?>仍然需要設置php.ini來開啟),說明大家對它的需求還是挺多的。實在擔心兼容性的可以手動修改live template,將<? ?>改為<?php ?>。
下面就是在phpstrom中加入live template,這個就相當于語法提示,你輸入前幾個字母(關鍵字),按tab,它就自動把自定義的補上。
關鍵字我都寫在上面代碼中方括號中了。
phpstorm的配置我就不一一貼了,后面給需要的下載地址,下面是while [stw] 的示例:
<? while($$$VAR$ $COND$ $COMP$): ?>$END$<? $$$VAR$++ ?> <? endwhile ?>
setting.jar的下載地址:setting.jar(其中只包括了Live Template設置,而且放在了一個自建的目錄下,不用擔心覆蓋自己的設置。)
PHP編程鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答