国产探花免费观看_亚洲丰满少妇自慰呻吟_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 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浦城县| 特克斯县| 新沂市| 龙里县| 阜城县| 泸西县| 奎屯市| 凭祥市| 牙克石市| 托里县| 澜沧| 微博| 潞城市| 平舆县| 美姑县| 从江县| 巴中市| 江门市| 上栗县| 精河县| 九龙县| 北川| 余庆县| 库伦旗| 纳雍县| 炉霍县| 雷州市| 威海市| 雅安市| 澄城县| 商都县| 安徽省| 高唐县| 桓台县| 凤台县| 阳高县| 漠河县| 临洮县| 托克托县| 赣榆县| 林州市|