我在使用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“中,然后重定向到第三个文件,该文件也包含第一个文件,并尝试检索此存储的数据,但它不起作用。这两个文件都连接到第一个文件。一个将信息存储在其中,另一个试图访问它。然而,它们似乎完全没有联系。
我遗漏了什么?这感觉非常基本,我很羞愧地说我不知道为什么它不能工作。
发布于 2018-12-20 13:58:47
PHP变量只有在页面处于活动状态/正在执行某些操作时才会被存储,因此当您从第2页重定向到第3页时,存储在该变量中的内容就会被删除。在页面之间保存内容的唯一方法是将其保存到会话/cookie/数据库中,然后从那里重新加载内容。简单地包含第一个文件意味着您能够使用该类及其函数,但是一旦您从Test2.php迁移出去,数据就会被删除。
发布于 2018-12-20 14:06:41
类是编程语言结构,它根据存储在变量(也称为属性)中的数据以及由函数(也称为方法)定义的对象的行为来定义类对象所包含的内容。
Objects是容器。它们包含表示单个抽象实体的定义函数和变量。
对象将在页面加载结束时被析构(从内存中卸载),或者如果您先前取消了对它的所有引用。
因此,对于对象和类,PHP变量将在通过解释器运行的脚本的整个生命周期中持续存在。在web请求的情况下,这是处理请求的生命周期。
https://stackoverflow.com/questions/53870066
复制相似问题