您好,登錄后才能下訂單哦!
這篇文章主要為大家詳細介紹了如何在PHP中使用in_array進行隱式轉換,文中示例代碼介紹的非常詳細,具有一定的參考價值,發現的小伙伴們可以參考一下:
php是一個嵌套的縮寫名稱,指的是英文超級文本預處理語言(php:Hypertext Preprocessor)的縮寫,它的語法混合了C、Java、Perl以及php自創新的語法,主要用來做網站開發,許多小型網站都用php開發,因為php是開源的,從而使得php經久不衰。
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中使用in_array進行隱式轉換,如何覺得億速云網站的內容還不錯,歡迎將億速云網站推薦給身邊好友。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。