array_push 不会向 PHP 中的数组添加元素

array_push wont add element to array in PHP

我正在使用会话并尝试创建一个应用程序来存储临时数据(目前),我正在使用此代码将 "courses" 添加到我的 userCourses 会话数组:

$_SESSION['userCourses'] = array(
    $_SESSION['siteCourses'][0],
);
if(isset($_GET['id'])){
    $id = $_GET['id'];
    array_push($_SESSION['userCourses'], $_SESSION['siteCourses'][$id]);
}

我的href是这样写的:

<a class="green" href="<?php echo 'coursesDisplay.php?id='.$course[2]; ?>" >Add Course</a>

其中 $course[2] 表示课程的 ID(将其视为自动增量整数,每个课程都是单独的)

现在,当我单击 link 时,它会添加到我的数组中,但是当我在没有获取 ID 请求的情况下访问该站点时,我的这一部分:

...url/file.php?id=1

它不显示课程,此外,每当我添加另一门课程时,尽管将它添加到之前的课程旁边,但之前的课程会被覆盖。

我的逻辑有缺陷吗(或者很愚蠢),我是不是漏掉了什么?这可能使用会话还是我需要为此使用数据库?我是 PHP 的新手,我想在转向数据库之前使用会话制作一个简单的应用程序。

注意:我没有忘记输入 start_session();在文件之上,我只是想让问题保持干净,并没有包括整个文件,但如果有人需要我,我可以将整个代码放在驱动器或其他东西上,他们可以下载它。

看起来每次脚本 运行 时您都在重新初始化会话变量。也许首先检查会话变量是否为空,如果是,则只初始化。类似于:

if (empty($_SESSION['userCourses'] )) 
{ 
    $_SESSION['userCourses'] = array( $_SESSION['siteCourses'][0], ); 
}