2017-04-06 198 views
1

例如查看下面的代碼,它根據從數據庫獲取的狀態返回鏈接。從PHP/Mysql函數返回HTML是否是一個好習慣?

function favourite_store_link ($store_id, $user_id) 
    { 
     (string) $display_output = null; 

     if ($user_id) 
     { 

      $is_favourite = $this->count_rows('favourite_stores', "WHERE store_id='" . $store_id . "' AND user_id='" . $user_id . "'"); 

      $fav_store = ($is_favourite) ? 'remove' : 'add'; 
      $fav_store_msg = ($is_favourite) ? MSG_ADD_TO_FAVOURITE_STORES : MSG_REMOVE_FROM_FAVOURITE_STORES; 
      $display_output = ' [ <a href="' . process_link('shop', array('user_id' => $store_id, 'fav_store' => $fav_store)) . '">' . $fav_store_msg . '</a> ]'; 
     } 

     return $display_output; 
    } 

我想問是否可以這樣做,或者我必須返回事件的狀態並讓其餘模板處理。

+0

這對 – clearshot66

+0

是完全正常的,檢查ob_start()和其他相關函數,如果你想在代碼執行中一次性顯示一個完整的頁面而不是所有的部分顯示優化) – butterFlyNick

回答

3

將邏輯和視圖分解爲代碼的不同部分要好得多。 如果您只是從您的功能返回數據,您將可以靈活地在其他地方,不同視圖等使用此功能。

劃分職責是良好的可維護代碼的主要原則之一。你可以閱讀更多關於它的信息here

+0

謝謝。博客也有非常有用的信息。 – IrfanAnwar

相關問題