开发者社区> 问答> 正文

下面的php运算中 isset 的问题

screenshot
怎么是true,这是怎么算的

展开
收起
落地花开啦 2016-06-16 11:35:49 1711 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    你加两行代码:

    echo $a[$b];//输出: l
    
    echo intval($b);//输出: 0

    原因:

    $a 是一个字符串,字符串本质上是byte array,当你用方括号访问它时,PHP就当它是byte array处理
    byte array的下标只能是数字,所以你用$b做下标时,PHP会做一次隐式的类型自动转换,把$b这个字符串转换成整形,就转换成0了

    如果你希望它返回false,你应该这么写:

    <?php
    if (is_array($a) && isset($a[$b]))
    2019-07-17 19:40:38
    赞同 展开评论 打赏
问答分类:
PHP
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载