Intereting Posts
wp_nav_menu исключает страницы из меню Сортировка многомерного массива на основе другого массива Текстовая обработка с PHP MySQL и PHP – как отображать только первые пять строк? symfony2: пароль пользователя установлен на пустой после запуска этого метода Как получить идентификатор зоны AWS Route53? PHP, не вставляющий более 91 строки, формирует данные в базу данных с помощью ajax Протестируйте этот метод с некоторыми параметрами, среди прочих Оптимизировать PHP-скрипт, чтобы предотвратить ограничение max_execution_time Как использовать драйвер MySQLi в Codeigniter Предупреждение: mysql_num_rows () ожидает, что параметр 1 будет ресурсом, boolean указан в /home/folder/public_html/folder/folder/login.php в строке 18 SOAP-ERROR: анализ WSDL: не удалось загрузить, но работает на WAMP почему session_destroy () не работает Копирование файлов cookie с первого ответа на следующий запрос Данные XML не могут быть отображены из mysql, используя php

перемещать объект с одной страницы на другую?

Сэн-парни. Я новичок в ООП на PHP. Я научился писать и создавать объекты. Есть ли способ взять объект и передать его другому сценарию? либо используя GET, либо POST или SESSION, или что-то еще. Если нет, то каким образом я могу назначить объект некоторым переменным на одной странице, а затем назначить одному и тому же объекту больше переменных на другой странице?

благодаря

Вы можете хранить объекты в сеансе, но перед тем, как вызывать session_start (), вы должны включить файл, который содержит определение класса (или использовать автозагрузку класса и установить его перед началом сеанса). Например:

На каждой странице:

//include class definition require('class.php'); //start session session_start(); 

Первая страница:

 $object = new class(); $object->someProperty = 'hello'; //store in session $_SESSION['object'] = $object; 

Последующие страницы:

 $object = $_SESSION['object']; //add something else, which will be stored in the session $object->anotherPropery = 'Something'; 

Вот пример с автозагрузкой в ​​отношении ответа Тома Хейга:

Перед началом сеанса:

 function __autoload($className) { $file = PATH_TO_FOLDER_WITH_ALL_CLASS_FILES."/".$className.'.php'; if(file_exists($file)) { require_once $file; } } session_start(); 

Страница, пропускающая объект:

 $object = new class(); $object->someProperty = 'hello'; //store in session $_SESSION['object'] = $object; 

Страница, получающая объект:

 $object = $_SESSION['object']; //add something else, which will be stored in the session $object->anotherPropery = 'Something'; 

Метод автозагрузки автоматически загрузит объекты во время получения данных из сеанса.

Вы можете сохранить объект на СЕССИИ. Вы можете сериализовать объект и пройти через GET или POST.

Если вы хотите, чтобы объект сохранялся по всему сайту, то SESSION, вероятно, будет вашим лучшим выбором.

Вы можете использовать $ _SESSION. но это будет только для этой сессии.

Использование object в нескольких «скриптах»:

Во-первых, вам нужно решить, какая структура имеет ваше приложение ООП. Если вы используете что-то вроде шаблона MVC , вам это не нужно, используя SESSION или REQUEST, потому что вы можете «подключить» объекты, которые хотите использовать, в «один». Что это значит?

Быстрый пример:

  1. Пользователь А входит в ваш сайт index.php
  2. Теперь вы можете загружать контент из статического index.html, но если вы хотите проверить, проверен ли пользователь на наличие определенного содержимого, например, «Вход администратора», вы можете использовать include_once('Authentication.php') и инициировать класс из этого файла, например <?php $Auth = new Auth_Handler; ?> <?php $Auth = new Auth_Handler; ?> Это сделает класс Auth также доступным в index.php или любом другом файле, который вы хотите включить в этот класс. Если вы хотите передать возвращаемое значение класса аутентификации другому файлу, например, «register.php», вы можете использовать SESSION или любой другой Cache. Передача целых объектов не рекомендуется из-за их размера. Включение и начало разыскиваемых классов в начале файлов намного лучше. И передача результатов SESSION использует меньше места.

Это действительно зависит от того, какую структуру или API вы хотите использовать, или о том, какой проект вы хотите создать.