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

在PHP中,变量是如何存储在类中的?,php,oop,include,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->

我在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();

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

类是编程语言结构,它定义了类对象根据存储在变量(也称为属性)中的数据所包含的内容,由函数定义的对象的行为也被称为方法

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

对象将在页面加载结束时被销毁(从内存中卸载),或者如果您先前取消设置了对它的所有引用


因此,对于对象和类,PHP变量将在通过解释器运行的脚本的生命周期内保持不变。对于web请求,这是处理请求的生命周期。

非常感谢!这就很好地解释了。由于包含,我不知道为什么我觉得它是如此活跃。我不想成为一个挂件,但test2.php可能在test3.php重定向和加载后仍在运行(这是最不可能的,但可能是因为test2.php在上面的示例中继续运行)。@Jo.joe我认为澄清“包含”很重要真的不是那么特别;这相当于只写出包含文件的所有代码。因此,您可以将
include(“test1.php”)
简单地理解为“将test1.php的源代码放在这里”。它不包括/传输内存中的任何内容(如变量值),只包含源代码。尽管变量/对象具有相同的名称,但每个页面请求上都有不同的测试实例。
<?php
include("test1.php");
$test->setData("sample", "Will I work?");
$test->redirect("test3.php");
<?php
include("test1.php");
echo $test->getData("sample");