国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

php中switch語句的用法介紹

2024-05-04 21:57:49
字體:
供稿:網(wǎng)友

本文章詳細(xì)的介紹了switch語句在php中用法,以及switch case在條件為0時(shí)的處理辦法,有需要了解的同學(xué)可以參考一下.

Switch 語句

如果您希望有選擇地執(zhí)行若干代碼塊之一,請使用 Switch 語句.

使用 Switch 語句可以避免冗長的 if..elseif..else 代碼塊.

實(shí)例代碼如下:

  1. switch (expression) 
  2. case label1: 
  3.   code to be executed if expression = label1; 
  4.   break;   
  5. case label2: 
  6.   code to be executed if expression = label2; 
  7.   break
  8. default
  9.   code to be executed 
  10.   if expression is different  
  11.   from both label1 and label2; 

實(shí)例

工作原理:

對表達(dá)式(通常是變量)進(jìn)行一次計(jì)算 

把表達(dá)式的值與結(jié)構(gòu)中 case 的值進(jìn)行比較 

如果存在匹配,則執(zhí)行與 case 關(guān)聯(lián)的代碼 

代碼執(zhí)行后,break 語句阻止代碼跳入下一個(gè) case 中繼續(xù)執(zhí)行 

如果沒有 case 為真,則使用 default 語句

實(shí)例代碼如下:

  1. switch ($cps_sign) { 
  2.         case 'yiqifa'
  3.         case 'chengguo'
  4.         case 'roiyiqifa'
  5.         case 'lkt'
  6.         case 'fanli'
  7.         case 'qqfanli'
  8.         case 'weiyi'
  9.         case 'yoyi'
  10.             $sql = "INSERT into sa_cps_list (`uv`,`s_time`,`cps`,`url`) VALUES ('{$uv}',{$timestamp},'{$cps_sign}','{$url}')"
  11.             echo $sql;exit(); 
  12.             mysql_query($sql); 
  13.             break
  14.         default
  15.             break
  16.     } 

仔細(xì)看了一下程序,莫非是switch和case惹的禍?于是,寫DEMO檢測.

//輸出結(jié)果為:bool(true) bool(false) xxx

實(shí)例代碼如下:

  1. var_dump(""==0);     
  2. var_dump(""===0); 
  3. $errid = ''
  4. switch ($errid) { 
  5.     case 0 : 
  6.         echo "xxx"
  7.         break
  8.     default
  9.         echo "yyy"

真相大白了,原來 switch/case結(jié)構(gòu)中,比較case值用的是==而不是===.這樣,空就和0相等了,我收到的結(jié)果也當(dāng)然就是錯(cuò)誤的了.

沒辦法,程序不想改,畢竟多條件的時(shí)候switch/case要比一堆if讓人看著舒心.想辦法吧.呵呵.

實(shí)例代碼如下:

  1. $result = ''
  2. if(is_numeric($err_id) === false) {   
  3. $result .= '宕機(jī)或超時(shí),沒有返回值';  
  4. return $result
  5. switch ($err_id) { 
  6.     case xxx : 
  7.         .......... 

問題解決了,先判斷一下返回值是否是數(shù)值,如果不是數(shù)值的話,直接return.

以后寫switch/case判斷數(shù)字的時(shí)候一定要小心,尤其是有0這個(gè)敗家值存在的時(shí)候

switch 語句和 elseif 語句的比較

在switch 語句中,條件只求一次,然后和每個(gè) case 比較,而在 elseif 語句中,條件會再次求值.如果你的條件比較復(fù)雜,或者是多次循環(huán),用 switch 語句速度會更加快些

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 衡水市| 兴义市| 涞源县| 新乐市| 海兴县| 蓬溪县| 农安县| 全南县| 凤台县| 静海县| 金华市| 正蓝旗| 友谊县| 蒙城县| 扎赉特旗| 新巴尔虎右旗| 武安市| 新干县| 商都县| 大关县| 长葛市| 连山| 安阳县| 新竹县| 静宁县| 秦皇岛市| 三门峡市| 高青县| 大港区| 江城| 惠州市| 竹溪县| 虹口区| 射阳县| 息烽县| 奎屯市| 高州市| 涞水县| 托里县| 松潘县| 光泽县|