多個:
'; ?>'; ?>'; ?>'; ?>'; ?>'; ?>
如何最佳化寫法?謝謝
*又編輯了一下,in_category 和 後面的 class 其實是沒有規律的。
回複內容:
多個:
'; ?>'; ?>'; ?>'; ?>'; ?>'; ?>
如何最佳化寫法?謝謝
*又編輯了一下,in_category 和 後面的 class 其實是沒有規律的。
for($i=1; $i<7; $i++) { if(in_category($i)) { echo ""; }}
對於代碼最佳化我沒有太多見解,留給其他小夥伴補充吧
更新:
再次最佳化了一下
$arr = array( 10=>'', 25=>'', 38=>'', 44=>'', 50=>'', 61=>'');function inCatToHtml($arr) { while (list($key, $value) = each($arr)) { if(in_category($key)) { echo $arr[$key]; } }}inCatToHtml($arr);
echo 可以根據實際情況最佳化,最後返回一個 in_category 的數組HTML,然後統一處理
'; }}
不過感覺html裡面混寫php很low...
推薦
php模板引擎。
前端單頁或是一個簡單的js引擎。
======== 噗,題主修改了下,我也改下 ==========
'icon-home', ....];具體就不寫了...和上面一樣。
"; }}?>
表現層只關心表現就行了,至於一共有多少個category,如何判斷當前頁面的category,每個category的class是什麼,無論你準備放db也好,寫數組配置也好,都封裝到Category類裡面去。
上面寫了這麼多,我還是覺得樓主原先的寫法一目瞭然
覺得樓主這個多個if的判斷條件直接用switch比較合適吧。不知道樓主這個in_category方法裡面的代碼是什麼樣的的,就大膽改變一下這個方法吧。方法裡用switch:
function in_category( $num ) { switch ($num) { case '10': echo''; break; case '25': echo''; break; case '38': echo''; break; case '44': echo''; break; default: echo ''; break; }}
然後直接in_category( 10 )可以嗎?
假設題主是在判斷文章屬於哪個分類就輸出某個ICON
那麼你可以先對分類做一個定義,
$categroies = [ 10=>['class'=>'icon-home'], 25=>['class'=>'icon-dog'], 38=>['class'=>'icon-cat'], 44=>['class'=>'icon4'] //當然這裡的資料可以是從資料庫裡封裝好的];//等待輸出的html$html = '';$class_i = 1;foreach($categories as $key => $category) { if (in_category($key)) { $html .= ''; }}echo $html;
這裡不知道in_category的用途,如果是為了判斷某個文章是否在某個分類因而需要去遍曆所有的分類,這樣的方式還是挺不合邏輯的。
前後端分離最好了