php一些帮助理解这一点!isset



我试图理解这个简单的代码,如果有人可以向初学者解释这一部分代码。请在简单的代码上忍受我并试图理解这一点。

我了解循环在做什么,只是 !isset($value[$values])的一部分正在绊倒我。

有人可以向我解释!isset发生了什么事,为什么未设置它?

示例

$array1 = [1, 2, 3];
$array2 = [4, 5, 6];
$array3 = [7, 8, 9];
$value = [];
foreach ([$array1, $array2, $array3] as $arr) {
    foreach ($arr as $values) {
        if (!isset($value[$values])) { // Why is this part of the code not set?
         ...
        }
    }
}

我的理解是:

1)$value[]值是一个空数组

2) $value[$values]您正在以$ value(1、2、3、4、5 ...)作为$ value数组的$键

3)当我var_dump $ value [$ values]内部的内部foreach循环中时,我得到 Notice: Undefined index:,为什么要得到这个?索引应该是数字吗?

4)最后,为什么不设置$value[$values]未设置?

运行此代码时,$ value为空,因此您测试的所有值都不设置,此数组中没有键1、2、3、4、5 ...因此,这就是为什么您有未定义的索引错误...

$value是一个空数组。因此,在您为该键分配值之前,您在该数组中调用的任何键都不会设置。

$value[$values]正在通过[ 1, 2, 3 ][ 4, 5, 6 ][ 7, 8, 9 ],因此您正在调用$value[1]$value[2]

您正在获得undefined index,因为索引不确定。PHP可以很好地处理此问题并发出Notice。其他语言(例如,Java)将发行Null Pointer Exception

最后,因为$value是一个空数组,并且未设置该密钥,isset()返回false。然后!isset()将返回true,因此代码将执行。

相关内容

最新更新