PHP 数组默认第一个索引有点问题

今天在查找一个多级数组中的一个key时,进行了对索引的比较,但是数组的默认索引比较时遇到了点问题,数组默认索引第一个索引键值应该是0,但是和字符串比较时居然通过了,代码如下,和数字比较时又时正常的。

$a = [1, 2, 3, 4];
foreach ($a as $key => $value) {
    echo $key;

    if ($key == 'shadiao') {
        echo "shadiao\n";
    }
    if ($key == 0) {
        echo "ling\n";
    }
    if ($key == 1) {
        echo "yi\n";
    }
    if ($key == 2) {
        echo "er\n";
    }
    if ($key == 3) {
        echo "san\n";
    }
}

输出结果
0shadiao
ling
1yi
2er
3san

php
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

在 if ($key == 'shadiao') 时判断为true, 因为 0 == ‘字符串' 判断 一直为真
可以用 if($key === 'shadiao'){ }

6年前 评论
 var_dump(0 == 'shadiao');

输出也是true,PHP会把字符串转为整型跟0做比较

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!