Я читал что-то о SuplerGlobals, как $ _SERVER или (см. Подробнее PHP Manual Superglobals ) на днях, теперь, я спрашиваю:
Возможно ли реализовать собственные SuperGlobals? Помимо констант …
Так, например, пользователь A пишет что-то в переменной, которую, если пользователь B вызывает, может видеть. Что-то вроде серверной переменной сеанса или что-то в этом роде.
Пожалуйста, не будьте тверды, если это глупый вопрос 🙂 Я знаю, что есть несколько способов снаружи, таких как SQL, Xml и Stuff, но, возможно …
PHP не имеет контекста, который может быть разделен между пользователями. Вы должны заменить какой-нибудь SQL-сервер или файл. Вы также можете проверить некоторые расширения, такие как memcache, которые могут помочь вам достичь своей цели.
Вся твоя идея PHP суперглобалирует это неправильно.
Эти переменные всегда доступны в терминах только одного сценария выполнения сценария, а не всего сайта.
Я читал что-то о SuplerGlobals, как $ _SERVER или (см. Подробнее PHP Manual Superglobals) на днях, теперь, я спрашиваю:
Возможно ли реализовать собственные SuperGlobals? Помимо констант …
Да, возможно, если у вас есть расширение runkit для PHP .
Например, пользователь A пишет что-то в переменной, которая, если пользователь B вызывает, может видеть
Это не то, что делают суперглобалы – это переменные, которые существуют в глобальной области действия (т. Е. На протяжении всего экземпляра скрипта).
Если вы хотите обмениваться данными между различными вызовами, вам необходимо отправить их на ваш уровень хранения или (в случае данных для одного клиента) в браузер.
Поскольку то, что вы здесь описываете, является фактически общим сеансом, тогда разумное место для реализации этого будет в обработчике сеанса.
Это невозможно, вы можете видеть только свои данные сеанса.
Для этого вам нужно будет хранить данные где-то в другом месте. в текстовых файлах или в базе данных MySQL будет наиболее распространенным.
я полагаю, вы можете использовать (asterix)export yourvar="something"(asterix)
и получить его с помощью getenv
sry, не знаю, как вставлять asterix = `, но лучше избегать этого …
Если вы используете apache, то следующие могут быть использованы: http://php.net/manual/en/function.apache-setenv.php
та же идея, переменная enveroinment