警告:试图读取“属性”;[ARRAY KEY]“数组键”;关于PHP中的null

警告:试图读取“属性”;[ARRAY KEY]“数组键”;关于PHP中的null,php,arrays,Php,Arrays,上面是定义数组然后设置几个值的代码。这是抛出一个错误,我怀疑是抱怨,因为我没有预先定义键,但我也不想。PHP最大的优点之一是,当从上下文中可以明显看出每一件小事时,不需要预先定义和分配 有没有一种简单的方法可以解决这个问题,而不必预定义整个数组及其所有键?我尝试将定义更改为$pairs={},希望它会更快乐,但没有骰子。我怀疑这是升级到PHP8的一个问题,我很想关闭警告,但我宁愿做得“正确”(除非这意味着预先定义所有内容) 编辑:为了清楚起见,标题中列出的错误适用于上述所有作业以及我的代码中的任

上面是定义数组然后设置几个值的代码。这是抛出一个错误,我怀疑是抱怨,因为我没有预先定义键,但我也不想。PHP最大的优点之一是,当从上下文中可以明显看出每一件小事时,不需要预先定义和分配

有没有一种简单的方法可以解决这个问题,而不必预定义整个数组及其所有键?我尝试将定义更改为$pairs={},希望它会更快乐,但没有骰子。我怀疑这是升级到PHP8的一个问题,我很想关闭警告,但我宁愿做得“正确”(除非这意味着预先定义所有内容)


编辑:为了清楚起见,标题中列出的错误适用于上述所有作业以及我的代码中的任何其他类似作业。我收到了上百个或更多此错误的实例,因为我以前一直在这样的赋值上创建数组键,我希望继续这样做。

请发布更多代码和带有行号的完整错误。错误是关于对象$post的属性,而不是数组,如果它为null,您将得到类似的错误。那么,您到底想要实现什么呢?对于与数组相关的错误,您将得到“Undefined index”错误。因此,您必须与对象
post
@taras相关-我希望它将$pairs[index]值设置为我列出的值。我希望能够通过如下所示的分配随时添加任何新索引。您确实需要学习如何进行调试。(因为问题不在于为
$pairs['post_name']
赋值)
$pairs      = [];                                   // Clear the pairs array
$pairs['post_name'] = $post->post_name;             // Hold the post_name for the error function's use
$pairs['post_id'] = $post->ID;                      // Hold the post ID for the error function's use
$pairs['tag'] = $tag;                               // Add the tag to the pairs array for the error function's use