如何在PHP的类中存储变量?

时间:2018-12-20 13:53:38

标签: php oop include

我在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愧地说我不知道​​为什么它不起作用。

2 个答案:

答案 0 :(得分:2)

仅在页面处于活动状态/正在执行操作时才存储PHP变量,因此,当您从页面2重定向到页面3时,将消除存储在该变量中的内容。在页面之间保存内容的唯一方法是将其保存到会话/ cookie /数据库中,然后从那里重新加载内容。仅包含第一个文件就意味着您能够使用该类及其功能,但是一旦从Test2.php迁移过来,数据就会被消除。

答案 1 :(得分:0)

是一种编程语言结构,用于定义存储在变量(也称为属性)中的数据以及由函数定义的对象(也称为方法)的数据方面的类对象。

对象是容器。它们包含代表单个抽象实体的定义函数和变量。

对象将在页面加载结束时被破坏(从内存中卸载),或者如果您更早取消了对其的所有引用。

因此对于对象和类,PHP变量在通过解释器运行的脚本的生存期内一直存在。对于Web请求,这是处理请求的生命周期。