zoukankan      html  css  js  c++  java
  • PHP 数组下标自动转换为整型的坑

    在做项目时,上线后遇到一个 BUG,有一个数组存储了下标从 ‘01’到‘18’ 总共18组数据。上线前测试了前几组数据,没问题。上线后,在用户选择‘15’时报错,找不到这个数据。查了一下代码,数据是没问题的,只是这里使用了‘===’来判断相等:

    // $code 作为参数传入
    foreach ($arr as $k => $v) {
        if ($k === $code) {
            // ...
        }
    }

    有可能是类型出问题了,测试一下:

    <?php
        //请输入你的php代码
    
        $arr = array(
            '01' => "hello",
            '10' => "world",
            '0' => "hello",
            6 => "hello",
            '1' => "hello",
            '3.14' => "ww",
        );
    
        echo '<pre/>';
        foreach ($arr as $k => $v) {
            var_dump($k);
        }
        echo ('--------------').PHP_EOL;
    
        var_dump('01');
        var_dump('10');

    输出如下:

    string(2) "01"
    int(10)
    int(0)
    int(6)
    int(1)
    string(4) "3.14"
    --------------
    string(2) "01"
    string(2) "10"

    对于可以转为数字的下标,PHP 会自动将其转为数字!

  • 相关阅读:
    bzoj 1503
    bzoj 1193 贪心+bfs
    bzoj 1798 线段树
    Codeforces 804D Expected diameter of a tree
    bzoj 1208
    bzoj 3224
    HDU 5115 区间dp
    hihocoder #1162 矩阵加速dp
    分块入门
    bzoj 1036 树链剖分
  • 原文地址:https://www.cnblogs.com/kika/p/10851572.html
Copyright © 2011-2022 走看看