我在PHP方面取得了一些进步。最近,我一直在玩类,我意识到关于变量的一些基本知识我可能不理解。
我创建了3个PHP文件。
test1.php:
<?php
class TEST{
private $data;
function setData($name, $value){
$this->data[$name] = $value;
}
function getData($name){
return $this->data[$name];
}
function redirect($url){
header("Location: $url");
}
}
$test = new TEST();
test2.php
<?php
include("test1.php");
$test->setData("sample", "Will I work?");
$test->redirect("test3.php");
test3.php
<?php
include("test1.php");
echo $test->getData("sample");
第一个文件定义一个类并创建一个对象。第二个文件包括第一个文件,并使用此类中的一个函数将值存储到私有变量“ data”中,然后重定向到第三个文件,该文件再次包含第一个文件,并尝试检索此存储的数据,但没有工作。这两个文件都连接到第一个文件。一个将信息存储到其中,另一个尝试访问它。但是似乎它们根本没有连接。
我想念什么?这感觉真的很基础,我很say愧地说我不知道为什么它不起作用。
答案 0 :(得分:2)
仅在页面处于活动状态/正在执行操作时才存储PHP变量,因此,当您从页面2重定向到页面3时,将消除存储在该变量中的内容。在页面之间保存内容的唯一方法是将其保存到会话/ cookie /数据库中,然后从那里重新加载内容。仅包含第一个文件就意味着您能够使用该类及其功能,但是一旦从Test2.php迁移过来,数据就会被消除。
答案 1 :(得分:0)
类是一种编程语言结构,用于定义存储在变量(也称为属性)中的数据以及由函数定义的对象(也称为方法)的数据方面的类对象。
对象是容器。它们包含代表单个抽象实体的定义函数和变量。
对象将在页面加载结束时被破坏(从内存中卸载),或者如果您更早取消了对其的所有引用。
因此对于对象和类,PHP变量在通过解释器运行的脚本的生存期内一直存在。对于Web请求,这是处理请求的生命周期。