Собственная суперглобальная переменная в PHP? - PullRequest
0 голосов
/ 24 ноября 2011

Я читал что-то о SuplerGlobals, например, $ _SERVER или (см. Подробнее PHP Manual Superglobals ), на днях, теперь я спрашиваю:

Возможно ли реализовать собственные суперглобалы? Помимо констант ...

Так, например, пользователь A записывает в переменную что-то, что, если пользователь B вызывает, это может видеть. Что-то вроде серверной переменной сеанса или что-то в этом роде.

Пожалуйста, не беспокойтесь, если это глупый вопрос :) Я знаю, что есть несколько способов, таких как SQL, Xml и Stuff, но, возможно, ...

Ответы [ 5 ]

3 голосов
/ 24 ноября 2011

Вся ваша идея о суперглобалах PHP неверна.
Эти переменные всегда доступны с точки зрения времени выполнения только одного скрипта, а не всего сайта.

2 голосов
/ 24 ноября 2011

На днях я читал что-то о SuplerGlobals, например, $ _SERVER или (см. Подробнее PHP Manual Superglobals), теперь я спрашиваю:

Возможно ли реализовать собственные суперглобалы? Помимо констант ...

Да, это возможно, если у вас есть расширение PHP runkit .

* * 1010

Так, например, пользователь A записывает в переменную что-то, что, если пользователь B вызывает, может видеть

Это не то, что делают суперглобалы - это переменные, которые существуют в глобальной области видимости (то есть на время экземпляра скрипта).

Если вы хотите обмениваться данными между различными вызовами, вам нужно отправить их на уровень хранения или (в случае данных для одного клиента) в браузер.

Поскольку то, что вы здесь описываете, фактически является общим сеансом, то разумное место для реализации этого будет в обработчике сеанса.

2 голосов
/ 24 ноября 2011

PHP не имеет контекста, который может быть разделен между пользователями.Вы должны заменить, например, SQL-сервер или файл.Вы также можете проверить некоторые расширения, такие как memcache , которые могут помочь вам в достижении вашей цели.

1 голос
/ 24 ноября 2011

Это невозможно, вы можете видеть только свои собственные данные сеанса.

Для этого вам нужно будет хранить данные в другом месте. в текстовых файлах или в базе данных MySQL будет наиболее распространенным.

0 голосов
/ 24 ноября 2011

Полагаю, вы можете использовать (asterix)export yourvar="something"(asterix) и получить его с помощью getenv

sry, не знаю, как встраивать asterix = `, но лучше этого избегать ...

Если вы используете apache, можно использовать следующее: http://php.net/manual/en/function.apache-setenv.php

та же идея, переменная enveroinment

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