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

首頁 > 語言 > PHP > 正文

關于php in_array函數使用的問題

2024-09-04 11:49:17
字體:
來源:轉載
供稿:網友

in_array函數是判斷數據中是否存在指定的內容了,對于這個函數用法非常的簡單但在使用過程中會我發現有一些問題,下面我們就對于這些問題來看看如何處理吧.

先介紹一下需求背景:

發票方式:

0=捐贈(不要問我為什么,歷史原因)

1=對中寄送

2=索取

3=電子發票

現在要對用戶提交的數據進行檢測:

  1. if(!in_array($_POST['invoice_action'], array(0,1,2,3))){ 
  2.     throw new Exception('請選擇正確的發票方式'); 

這個時候出現一個問題,如果壓根就不存在$_POST[‘invoice_action’]這個值,為什么沒有拋出異常?

經確認,這就是PHP作為弱類型語言的一個坑,沒錯,這是一個坑.

看一下這組代碼:

  1. echo in_array(''array(0)) ? 1 : 0;     // 結果:1 
  2. echo in_array(null, array(0)) ? 1 : 0;   // 結果:1 
  3. echo in_array(false, array(0)) ? 1 : 0;  // 結果:1 

這么大一個坑,我們要怎么繞過或者填起呢?

方法一:in_array支持第三個參數,強制對數據類型檢測

  1. echo in_array(''array(0), true) ? 1 : 0;     // 結果:0 
  2. echo in_array(null, array(0), true) ? 1 : 0;   // 結果:0 
  3. echo in_array(false, array(0), true) ? 1 : 0;  // 結果:0 

方法二:依然是數據類型方向,把數組中的0改為字符串

  1. echo in_array(''array('0'), true) ? 1 : 0;     // 結果:0 
  2. echo in_array(null, array('0'), true) ? 1 : 0;   // 結果:0 
  3. echo in_array(false, array('0'), true) ? 1 : 0;  // 結果:0 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 松桃| 洪湖市| 巫山县| 商丘市| 屏边| 年辖:市辖区| 毕节市| 威宁| 桃园县| 垣曲县| 来宾市| 临湘市| 德阳市| 应用必备| 涿州市| 盈江县| 许昌市| 茂名市| 交口县| 图木舒克市| 修水县| 通化县| 昌黎县| 错那县| 普兰店市| 济宁市| 通道| 东至县| 沾化县| 巫山县| 若尔盖县| 和静县| 岫岩| 安阳县| 鹤壁市| 望都县| 鹤峰县| 东城区| 宜州市| 安泽县| 南木林县|