PHP 一些帮助理解这个 !isset
PHP Some help understanding this !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]
您正在传入 $values (1, 2, 3, 4, 5 ...) 作为 $value 数组的 $key
3) 当我在内部 foreach 循环中 var_dump $value[$values] 我得到 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()
returns false
。然后 !isset()
将 return true
,因此代码将执行。
我正在尝试理解这段简单的代码,如果有人可以向初学者解释这段代码。请耐心等待简单的代码并尝试理解这一点。
我明白循环在做什么,只是 !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]
您正在传入 $values (1, 2, 3, 4, 5 ...) 作为 $value 数组的 $key
3) 当我在内部 foreach 循环中 var_dump $value[$values] 我得到 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()
returns false
。然后 !isset()
将 return true
,因此代码将执行。