PHP5.3中in_array()的一個坑
因排查問題,發現目前生產環境的PHP版本5.3中有這個問題:
//php5.3
echo PHP_INT_MAX;
$str = “114100007160061630632”;
$arr = array(“114100007160061630631”);
var_dump(in_array($str,$arr));
echo `PHP:` .phpversion();
exit;
對於純數字的非嚴格比較,因超出Int最大值,5.3中給出的是結果是 true.
5.5中驗證是已經修復的.
解決方案:
可以新增第三個引數,嚴格比較。
var_dump(in_array($str,$arr, true));
但是嚴格比較請注意帶來的新的問題:比方說 var_dump(in_array(1, array(`1`), true))結果是false,是否影響原有程式
參考文件:
http://php.net/manual/zh/function.in-array.php
http://php.net/manual/zh/language.types.integer.php
http://php.net/manual/zh/types.comparisons.php
大家可以自己關注下。
本文轉自shayang8851CTO部落格,原文連結:http://blog.51cto.com/janephp/1717088,如需轉載請自行聯絡原作者
相關文章
- 又一個強大的PHP5.3依賴注入容器PHP依賴注入
- 又一個「簡單」的 PHP5.3 依賴注入容器PHP依賴注入
- WinUI 剪裁釋出中的一個小坑UI
- 一個android 的HAL示例中遇到的坑。Android
- intervention/image 中的一個小坑及其破解之法
- sql server中的一個坑-len與datalength區別SQLServer
- 記前端狀態管理庫Akita中的一個坑前端
- MySQLtimestamp的一個坑MySql
- 一個蘿蔔一個坑
- ConfigParser.ConfigParser()中set的一個坑
- 分享一個composer的坑
- Golang Recover的一個小坑Golang
- 小程式canvas的一個坑Canvas
- ajax中回撥的幾個坑
- MongoDB中的一些坑MongoDB
- 推薦一個整合環境,appserv 沒找到有PHP5.3以上的。APPPHP
- SQLite 在 Migration 中 dropColumn 的一個小坑,哭死你SQLite
- PHP Composer 的一個小坑PHP
- Array.prototype.splice 的一個坑
- spring中<context:property-placeholder/>一個坑SpringContext
- AngularJS 中的一些坑AngularJS
- python第一個坑Python
- Android中單例模式的幾個坑Android單例模式
- 學習openresty時,nginx的一個坑RESTNginx
- 建立 UIWindow 被忽視的一個坑UI
- Redis 修改過期 key 的一個坑Redis
- 使用 NSUserDefaults 儲存字典的一個坑
- MVC Json方法裡的一個坑MVCJSON
- 一個Flex 對話方塊的坑Flex
- go select case的一個小坑Go
- 8種最坑的SQL錯誤用法,第一個就很坑?SQL
- js中函式的一些”坑“JS函式
- Spring Boot 中的同一個 Bug,竟然把我坑了兩次!Spring Boot
- API 開發中可選擇傳遞 token 介面遇到的一個坑API
- 【爬坑日記】vue中watch物件中某一個屬性變化Vue物件
- 十個你需要在 PHP 7 中避免的坑PHP
- 面試中的這些坑,你踩過幾個?面試
- 一個專案中:只能存在一個 WebMvcConfigurationSupport (靜態檔案失效之坑)WebMVC