我希望创建一个数组,该数组每次运行PHP脚本时都以一个随机数增长。如果我确信[$_SESSION["my_array"]
的值是预定义的,那么它在每个脚本回合中都会增加。
但是,如果我不预先定义上述数组,则将创建一个随机数,但该数组的存储位数不会增加。
问题:是否可以避免在开始时填充数组?我希望数组从空开始。
<pre>
<a href="session_destroy.php">Destroy session</a>
<?php
session_start();
$_SESSION["my_array"] ?? [];
$my_array = $_SESSION["my_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);
?>
我的[destroy_session]文件:
<?php
session_start();
$_SESSION = array();
session_destroy();
var_dump($_SESSION);
答案 0 :(得分:2)
您没有初始化会话数组,必须像这样初始化它:
$_SESSION["my_array"] = $_SESSION["my_array"] ?? [];
否则,您的数组中没有起始值,这就是您的推送不能使数组增长的原因。
答案 1 :(得分:0)
<?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);
?>