Как переменные хранятся внутри класса в PHP? - PullRequest
0 голосов
/ 20 декабря 2018

Я добился небольшого прогресса в 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», затем перенаправляет в третий файл, который снова включает в себя первый и пытается извлечь эти сохраненные данные, но неРабота.Оба файла связаны с первым.Один хранит информацию в нем, а другой пытается получить к нему доступ.Все же кажется, что они вообще не связаны.

Чего мне не хватает?Это кажется очень простым, и мне стыдно сказать, что я понятия не имею, почему это не работает.

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Классы - это структуры языка программирования, которые определяют, что объекты класса включают в данные, хранящиеся в переменных, также известных как свойства, и поведение объектов, определенных функциями, также известными как методы.

Объекты являются контейнерами.Они содержат функции определения и переменные, которые представляют одну абстрактную сущность.

Объекты будут уничтожены (выгружены из памяти) в конце загрузки страницы или если вы удалили все ссылки на нее ранее.

Таким образом, для объектов и классов переменные PHP сохраняются в течение всего жизненного цикла сценария, выполняемого через интерпретатор.В случае веб-запроса это время обработки запросов.

0 голосов
/ 20 декабря 2018

Переменные PHP хранятся только до тех пор, пока страница активна / что-то делает, и поэтому при перенаправлении со страницы 2 на страницу 3 содержимое, хранящееся в этой переменной, удаляется.Единственный способ сохранить содержимое между страницами - это сохранить его в сеансе / файле cookie / базе данных, а затем перезагрузить содержимое оттуда.Простое включение первого файла означает, что вы способны использовать класс и его функции, но данные удаляются сразу после перехода с Test2.php.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...