gpt4 book ai didi

PHP:为什么当您向不存在索引的数组添加值时它不会引发通知?

转载 作者:可可西里 更新时间:2023-11-01 12:58:28 25 4
gpt4 key购买 nike

例如:

$array = [];

echo $array['bar']; // PHP NOTICE - trying to access not existing key`

$array['bar'][] = 'foo'; // Nothing

我知道它会创建带有索引“bar”的数组,但 PHP 是如何在内部处理它的?

最佳答案

$array['bar'][] = 'foo'; 不会返回通知或错误,因为没有错误。您正在创建一个新的数组索引和其中的另一个索引,并为其分配一个值。这就是声明的意思。没有错误返回。

如果您希望在未设置特定数组索引时有行为,您可以使用 array_key_exists ( http://php.net/manual/en/function.array-key-exists.php ):

if(array_key_exists('bar', $array)){
$array['bar'][] = 'foo';
} else {
// something else
}

如果这个问题是功能性的(即,您正在尝试完成特定的事情)。如果问题更概念化——为什么 PHP 不将变量赋值读取为错误:

PHP 能够在一行中对变量进行初始化和赋值,即$foo = 'bar'。即使 $foo 之前没有定义,这也不会返回错误,因为 PHP 首先初始化变量。同样的方法也适用于数组索引。 $array['foo'][] = 'bar' 不会返回错误或通知,因为 PHP 正在初始化数组索引,就像初始化变量一样。

关于PHP:为什么当您向不存在索引的数组添加值时它不会引发通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41105441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com