欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學(xué)堂PHP培訓(xùn)簡述PHP中in_array的隱式轉(zhuǎn)換的解決方法

2018-06-08 14:10:26 1383瀏覽

本篇文章扣丁學(xué)堂PHP培訓(xùn)小編給大家分享一下PHP中in_array的隱式轉(zhuǎn)換的解決方法,文章中有代碼列出,對PHP開發(fā)感興趣的小伙伴可以隨著小編一起來看一下。


扣丁學(xué)堂PHP培訓(xùn)簡述PHP中in_array的隱式轉(zhuǎn)換的解決方法


問題:


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


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


可是自測時發(fā)現(xiàn),傳入正確的參數(shù),都會返回參數(shù)不正確的提示?。?!



原因:


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



非數(shù)字字符串和整數(shù)比較,字符串自動轉(zhuǎn)換為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增加第三個參數(shù)true,用來檢查搜索的數(shù)據(jù)與數(shù)組的值的類型是否相同,這樣函數(shù)只有在元素存在于數(shù)組中且數(shù)據(jù)類型與給定值相同時才返回 true

針對我上面出現(xiàn)的業(yè)務(wù),完全可以嚴(yán)謹(jǐn)一些,將int型數(shù)據(jù)存一個數(shù)組,string存一個數(shù)組,兩個不同類型的數(shù)組分別進行數(shù)據(jù)校驗,這樣也不會出現(xiàn)上面的問題




以上就是扣丁學(xué)堂PHP在線學(xué)習(xí)小編給大家分享的PHP中in_array的隱式轉(zhuǎn)換的解決方法,希望對小伙伴們有所幫助,想要了解更多內(nèi)容的小伙伴可以登錄扣丁學(xué)堂官網(wǎng)咨詢。扣丁學(xué)堂是專業(yè)的PHP培訓(xùn)機構(gòu),扣丁學(xué)堂不僅有專業(yè)的老師和與時俱進的課程體系,還有大量的PHP在線視頻供學(xué)員觀看學(xué)習(xí),想要學(xué)好PHP開發(fā)的小伙伴快快行動吧??鄱W(xué)堂PHP技術(shù)交流群:374332265。  


扣丁學(xué)堂微信公眾號

【關(guān)注微信公眾號獲取更多學(xué)習(xí)資料】



查看更多關(guān)于“php培訓(xùn)資訊”的相關(guān)文章>>




標(biāo)簽: 扣丁學(xué)堂PHP培訓(xùn) PHP中in_array的隱式轉(zhuǎn)換的解決方法 PHP培訓(xùn) PHP基礎(chǔ)教程 PHP入門視頻 PHP視頻

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部