switch 簡潔寫法

提供WOG各方面的技術問題,並提供最新path更新。

版主: 涅魂, 簫哥, 10度C~

stu6707
 
文章: 162
註冊時間: 2008-10-26 1:00 pm

switch 簡潔寫法

文章stu6707 » 2011-11-19 4:04 pm

不久前發現一篇大師寫的文章,說明網頁開發者的不同等級以及該等級開發者對同功能代碼的不同寫法

他舉的例子是 javascript 的 switch

新手會用if.. else if 來表示

更高一級會用switch

更高級的會用array!!! :shock:

當初看到時的第一個想法是,原來可以這樣寫,怎麼都沒想到.. :face19:

同樣的寫法也可以應用在php

例:
代碼: 選擇全部
function type_name($temp_id)
{
   switch($temp_id)
   {
      case "0":
         return "a_id";
      break;
      case "1":
         return "d_head_id";
      break;
      case "2":
         return "d_body_id";
      break;
      case "3":
         return "d_hand_id";
      break;
      case "4":
         return "d_foot_id";
      break;
      case "5":
         return "d_item_id";
      break;
      case "5,6":
         return "d_item_id";
      break;
      case "6":
         return "d_item_id";
      break;
      default:
         alertWindowMsg("無此物品");
      break;
   }
}

這是function.php 中的方法,來判斷裝備種類名稱

雖然現在也不雜亂,不過等裝備種類一多就頭大了,一長串的case....

改成array就簡潔多了
代碼: 選擇全部
$arr=array(
         '0'=>'a_id',
         '1'=>'d_head_id',
         '2'=>'d_body_id',
         '3'=>'d_hand_id',
         '4'=>'d_foot_id',
         '5'=>'d_item_id',
         '5,6'=>'d_item_id',
         '6'=>'d_item_id'
      );
   if(!isset($arr[$temp_id]))
   {
      alertWindowMsg("無此物品");
   }
   return $arr[$temp_id];

這樣就簡潔多了 :D

另外效率應該是比switch快,畢竟不用一個一個case的去對




ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: switch 簡潔寫法

文章ETERNAL » 2011-11-19 6:21 pm

是的 這樣寫效率比較高,也簡潔

之前有人跟我提過

在javascript有些部份改成這樣 ^^


水色論壇 http://www.et99.net
簡恩峻分享

左慈
 
文章: 108
註冊時間: 2008-03-03 1:42 pm

Re: switch 簡潔寫法

文章左慈 » 2012-03-16 12:50 pm

感谢了 看来stu6707 同志一直在研究哦! 惭愧了。。。

感谢分享这么好的东西!




回到 Online FF Battle-WOG官方聯盟推廣處

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 5 位訪客