oop — php setter и getter не работают

Мои php getter и setter не работают должным образом. Вот мой код Файл test.php содержит следующее …

class test{
private static $instance;
private $name=null;

public static function getInstance(){
if(!isset(test::$instance) ) {
test::$instance = new test();
}
return test::$instance;
}

public function setName($n){
$this->name=$n;
}

public function getName(){
return $this->name;
}

test2.php имеет форму, которая просит пользователя ввести свое собственное имя. Когда они нажимают кнопку «Отправить», у меня появляется код, который выглядит так, чтобы установить введенное имя в качестве имени переменной в тесте.

$test=test::getInstance();
$test->setName("My PHP Test");
print "The name is " . $test->getName() . "<br />;

The name is My PHP Test напечатан успешно.

Однако, как только они отправляют форму на test2.php, которая переводит пользователя на test3.php, и я пытаюсь использовать тот же код, чтобы вернуть имя, возвращаемое значение равно нулю.

$test=test::getInstance();
print "The name is " . $test->getName() . "<br />;

The name is печатается.

я добавил include('test.php'); к каждому файлу, но это не помогает.

Есть ли ошибка в моем коде? И также это правильный подход в целом? Если не то, что есть?

Любые отзывы приветствуются. Благодарю.

0

Решение

Объекты не сохраняются автоматически, вам нужно сохранить данные в test2.php и извлечь их в test3.php, используя базу данных, форму или файлы cookie.

Я добавил include (‘test.php’); к каждому файлу, но это не помогает.

Вероятно, потому что вы создаете новый экземпляр теста, который перезаписывает тот в test.php

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]