捷哥麻烦问一下 我自己写 array_count_values函数 为什么会有 notice

来源:8-4 模拟内置函数实现考察点

hallo_monde

2018-04-09

<?php

$a = [1, 2, 3, 1, 1, 2, 3, 4, 5, 2, 2, 3, 4, 5, 6, 77, 7, 7, 7, 7, 2, 1, 2, 2, 2, 3, 3, 4, 5, 6, 7];
$b = [];

$length = count($a);

for ($i = 0; $i < $length; $i++) {
    if ($b[$a[$i]])
        $b[$a[$i]]++;
    else
        $b[$a[$i]] = 1;
}

foreach ($b as $key => $value) {
    echo "$key=>$value" . "<br/>";
}

var_dump($b);


基础代码逻辑是上面的  就是不知道为什么 一直会报

( ! ) Notice: Undefined offset: 1 in C:\wamp64\www\data\array\test2.php on line 11 的错

写回答

2回答

Jason

2018-04-16

是这样,最初定义$b的时候,我们并没有定义$b内的元素,所以如果我们要做判断或者是修改操作,就会报出Notice错误,不过这个不用担心,本身Notice错误级别可以被忽略,因为PHP本身作为弱类型语言,这个错误可以被忽略,可以修改错误级别进行修改,修改php.ini的error_reporting或者调用函数error_reporting函数

0
0

纸短情长阿

2018-04-12

if ($b[$a[$i]])

这一行改为

if(isset(i$b[$a[$i]]))

0
0

360大牛带你横扫PHP职场 全面解读PHP面试

全面、系统剖析PHP面试,拿下心仪Offer

1817 学习 · 464 问题

查看课程