php - in_array('01',array('1'))为什么返回true
巴扎黑
巴扎黑 2017-04-10 15:05:02
[PHP讨论组]
echo in_array('01',array('1'))

在使用in_array不采用strict时,为什么返回1,怎么判断的?

巴扎黑
巴扎黑

全部回复(1)
天蓬老师

in_array($needle, $haystack) — 检查数组中是否存在某个值

你可以理解为依次取数组中的值,然后跟 $needle 做比较。如果 == 判断成立则返回 true.类似伪代码:

function in_array($needle, $haystack) {
    foreach($haystack as $val) {
        if ($val == $needle) {
            return true;
        }
    }
    return false;
}

注意:在 PHP 中 == 同 === 的差别。

var_dump(("01" == 1));

var_dump((" 1 " == 1));

然后你就明白了

补充一下:

就楼主问题来说, in_array 判断 字符串和数字是否相等时对输入的字符串 “01” 进行了取值。详细情况可以参见: PHP类型比较表 - PHP官方网站 php.net

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号