执行array_push后,数组显示为空

时间:2015-06-11 10:10:13

标签: php arrays

我有一个像控制器一样的页面,或多或少(我不使用框架)名为control.php 这个页面有一个在顶部声明的数组,如果验证了调用的页面。就像这样:

<?php
$arr= array();
$reference=str_replace("/","",parse_url($_SERVER['HTTP_REFERER'],PHP_URL_PATH));
if($reference=="page1.php"){
    $value="pages";
    array_push($arr, $value);
    header("Location: page2.php");
}else($reference=="page2.php"){ print_r($arr);  }

目标是当page1调用control.php时它会添加到数组中,当page2调用control.php时它会打印数组。我不明白的问题是,如果我在添加它之后立即打印数组,但是当我在第2页时执行它时,数组是空的。在页面顶部解析数组并不是t让它可用于所有control.php?

1 个答案:

答案 0 :(得分:0)

每次执行php脚本时,无论是相同的脚本还是两个不同的脚本,环境都是从头开始设置的。自动在不同脚本之间没有保留状态。变量及其值不会保留。一切都从头开始。

如果要在两个不同的脚本之间保留一些信息,则需要引入一些存储机制。您可以使用会话或数据库来实现这一目标。