Php 数组推送仅在使用值预定义数组时起作用

Php 数组推送仅在使用值预定义数组时起作用,php,arrays,Php,Arrays,我希望创建一个数组,该数组在每次PHP脚本运行时都以一个随机数不断增长。如果我确保[$\u会话[“my_array”]具有预定义的值,那么它将在每轮脚本中递增 但是,如果我没有预先定义上述数组,则会创建一个随机数,但数组中存储的数字不会增加 问题:是否有办法避免在开始时填充数组?我希望数组以空开始 我的[销毁会话]文件: 您不是在初始化会话数组,您必须像这样初始化它: $\u会话[“我的数组”]=$\u会话[“我的数组”]??[]; 否则,您的数组中没有起始值,这就是推送无法增长数组的原因

我希望创建一个数组,该数组在每次PHP脚本运行时都以一个随机数不断增长。如果我确保
[$\u会话[“my_array”]
具有预定义的值,那么它将在每轮脚本中递增

但是,如果我没有预先定义上述数组,则会创建一个随机数,但数组中存储的数字不会增加

问题:是否有办法避免在开始时填充数组?我希望数组以空开始


我的[销毁会话]文件:



您不是在初始化会话数组,您必须像这样初始化它:

$\u会话[“我的数组”]=$\u会话[“我的数组”]??[];


否则,您的数组中没有起始值,这就是推送无法增长数组的原因。

如果您没有初始化会话数组,则必须按如下方式初始化它:

$\u会话[“我的数组”]=$\u会话[“我的数组”]??[];


否则,您的数组中没有起始值,这就是推送无法增加数组的原因。

我不知道您在问什么,但在
会话\u开始之前,您不能有任何输出/html
尝试使用
$\u会话[“我的数组”]=$\u会话[“我的数组”]??[];
此代码不执行任何操作:
$\u会话[“我的数组”]??[]
@cristianocasiotti您的建议解决了我的问题。如果您可以将您的评论移动到答案中,并添加一行解释您的建议为什么有效,我将继续并批准该答案。我不知道您的问题是什么,但在
会话开始之前,您无法获得任何输出/html。\u
尝试使用分配会话的数组ode>$\u SESSION[“my_array”]=$\u SESSION[“my_array”]??[];
此代码不起任何作用:
$\u SESSION[“my_array”]??[];
@CristianoCasiotti您的建议解决了我的问题。如果您可以将您的评论移到一个答案中,并添加一行解释您的建议为什么有效,我将继续并批准答案。
<?php
    session_start();

    $my_array = $_SESSION["my_array"];
    if(!is_array($my_array)) {
        $my_array = array();
    }

    $new_random_value = rand(1, 6);
    array_push($my_array, $new_random_value);
    $_SESSION["my_array"] = $my_array;

    var_dump($my_array);
    var_dump($_SESSION);

?>