2016-09-29 2 views
0

Мой php-код создает объект «Школа», который является (среди других функций), способным возвращать несколько форм, которые находятся на submit, обрабатываются php. Через одну из этих форм я могу добавить объект «SchoolClass» к массиву в объекте «Школа», но кажется, что объект «Школа» воссоздан в какой-то момент после добавления объекта «SchoolClass». Это воссоздание приводит к исчезновению массива «SchoolClass».Поддерживать состояние объекта php

Функции, возвращающие формы, являются статическими, но функции, в которых объекты «SchoolClass» добавляются в массив, не являются статическими; («Школа :: ShowStudentForm() и School-> RegisterSchoolClass ($ class)»)

И определение класса, и php-скрипт, обрабатывающий форму после отправки, находится в том же файле (index.php). У меня возникла идея, что сохранение кода класса и кода обработки формы в том же файле приведет к трюку, но это не изменило ситуацию.

Вопрос 1: Как я могу поддерживать объект «Школа» до тех пор, пока он мне нужен? Вопрос 2: Можно ли создать класс только с помощью статических методов и записать данные непосредственно в файл или базу данных, чтобы избежать всей проблемы или просто пропустить весь объектный подход и просто использовать «обычные» функции?

Да, эта проблема, вероятно, встречается раньше и поэтому также ответила ранее, но я не смог найти ответ, который я понимаю.

+0

Вы имеете в виду сохранение данных через несколько страниц HTML формы? – Siguza

+0

Если я понимаю ваш вопрос, ответ будет только одной формой в то время. Но есть несколько форм, которые можно назвать из «Школы», – Kapalua

ответ

0

OK .... я понял. Я могу использовать переменную $ _SESSION для ее сохранения.

Теперь я сделать, как это в начале страницы:

$school = null; 
if(!isset($_SESSION["school"])) 
{ 
$school = new School; 
$_SESSION["school"] = $school; 
echo "New school <br>"; 
} else { 
$school = $_SESSION["school"]; 
} 
Смежные вопросы