婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP中in_array的隱式轉換的解決方法

PHP中in_array的隱式轉換的解決方法

熱門標簽:江蘇外呼電銷機器人報價 專業電話機器人批發商 400電話申請方法收費 電話機器人危險嗎 長沙crm外呼系統業務 400電話辦理福州市 深圳外呼系統收費 離石地圖標注 南寧高頻外呼回撥系統哪家好

問題

今天在寫一個接口的時候,需要傳入大量的基本信息參數,參數分別是int和string兩種類型,為了校驗方便,我打算把所有的參數都放在數組中,然后用in_array(0, $param)判斷 int 參數是否為0,再單獨判斷string參數是否為空,示例代碼如下:

      if(in_array(0, $param) || $param['img'] == '') {
        $this->errorCode = 10030;
        $this->errorMessage = '參數不正確';
        return false; 
      }

可是自測時發現,傳入正確的參數,都會返回參數不正確的提示!!!

原因

出現這種情況,正是因為in_array惹的禍,in_array(search,array)等價于將數組中的每個value與search比較,由于我$param數組中除了有int參數,還有一個string參數,相當于用string和int去比較,PHP的隱式轉換規則:

非數字字符串和整數比較,字符串自動轉換為int(0)

下面的例子就驗證了我們的說法:

?php

  $a = (int)'abc';
  var_dump($a); //int(0)

  $c = array(0,1,2,3);
  if(in_array('abc', $c)) {
    echo 'exist';
  } else {
    echo 'not exist';
  } //exist 

解決辦法

in_array增加第三個參數true,用來檢查搜索的數據與數組的值的類型是否相同,這樣函數只有在元素存在于數組中且數據類型與給定值相同時才返回 true

針對我上面出現的業務,完全可以嚴謹一些,將int型數據存一個數組,string存一個數組,兩個不同類型的數組分別進行數據校驗,這樣也不會出現上面的問題

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • php使用array_chunk函數將一個數組分割成多個數組
  • PHP array_reduce()函數的應用解析
  • PHP 二維array轉換json的實例講解
  • 分享六個比較好用的php數組Array函數
  • php curl獲取到json對象并轉成數組array的方法
  • PHP數組式訪問接口ArrayAccess用法分析
  • PHP如何使用array_unshift()在數組開頭插入元素

標簽:太原 濱州 南京 興安盟 株洲 白酒營銷 曲靖 南昌

巨人網絡通訊聲明:本文標題《PHP中in_array的隱式轉換的解決方法》,本文關鍵詞  PHP,中,array,的,隱式,轉換,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP中in_array的隱式轉換的解決方法》相關的同類信息!
  • 本頁收集關于PHP中in_array的隱式轉換的解決方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 中西区| 万山特区| 寻甸| 廊坊市| 交城县| 奇台县| 邯郸县| 保康县| 竹北市| 青田县| 恩平市| 宜宾县| 威海市| 峡江县| 凌源市| 普兰县| 资源县| 金湖县| 久治县| 固阳县| 远安县| 贺州市| 略阳县| 伊吾县| 山阴县| 上蔡县| 清河县| 商都县| 平江县| 邢台市| 南投县| 清涧县| 吴川市| 焦作市| 长子县| 都兰县| 苍梧县| 河北区| 渭南市| 将乐县| 芷江|