Как в PHP использовать общие переменные

12
[Удален]
1236

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

Как это можно сделать?

Лунный Кот
На сайте с 27.01.2006
Offline
222
#1

храните значение в базе данных

Вы мне свои достижения жизненные продемонстируйте, пожалуйста, я, возможно, возьму свои слова обратно и извинюсь прилюдно. Только думается мне, что вы банальный лась. (с) Mirson
[Удален]
#2

Ну либо глобальная переменная, в этом случае нужно везде писать перед ней слово global, т.е. объявить её на верхнем уровне как global $var, и во всех уровнях абстракции (классы, функции), в начале еще раз писать так же.

Более кошерный метод - статические члены класса


class MyClass
{
static $var;
}

после этого в любом месте кода можно её считывать записывать через MyClass::$var. Класс естественно нужно инклюдить.

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

Djaarf
На сайте с 16.12.2008
Offline
15
#3

Или в сессии, только тогда в этих разных скриптах должна использоваться одна сессия


ini_set('session.cookie_domain', '.example.com'); - если поддомен
ini_set('session.cookie_domain', 'site1.com, site2.com'); - если разные домены
Ufaweb
На сайте с 03.03.2008
Offline
182
#4
Djaarf:
ini_set('session.cookie_domain', 'site1.com, site2.com'); - если разные домены

А по-русски есть функция set_cookie() ;)

Derek
На сайте с 23.09.2005
Offline
70
#5

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

(.)(.) или ( Y ) ? (http://www.realderek.ru/) : как заработать 20 миллионов долларов США за 2 года (http://www.realderek.ru/2010/04/20-millions-za-2-goda.html)
[Удален]
#6
Ufaweb:
А по-русски есть функция set_cookie() ;)

в соседней вете вы мне писали

Есть варианты заказать себе мозг...

куки хранятся на стороне клиента

а я писал чтобы все посетители имели доступ к переменной

если я переменную запишу в куки васи пупкина как я смогу получить доступ к этим данным с компа леши пупкина?

вот ведь действительно у человека мозга нет))))

[Удален]
#7

Ну а на сервере пока известно немного способов хранения данных. Файл и СУБД - самые напрашивающиеся.

[Удален]
#8
neolord:
Ну а на сервере пока известно немного способов хранения данных. Файл и СУБД - самые напрашивающиеся.

Ну например в ASP win есть такое понятие переменные приложения application

есть ли что-то подобнгое в PHP

файлы и СУБД не подходят поэтому и запостил эту тему иначе базу бы заюзал ....

Аедрей добавил 27.01.2009 в 16:22

Лунный Кот:
храните значение в базе данных

Я стараюсь не хранить в базе то что можно там не хранить

Лунный Кот часто видел вас в разделе хостинг вы там с хостером(если не изм.память sweb.ru) постоянно ругались по поводу превышения нагрузки ....видимо любите все в базу засовывать....

A
На сайте с 16.11.2008
Offline
12
#9

Аедрей, все есть память. Желаете решение без файла и бд? пожалуйте ;)

Пишете демона, который будет просто коллектором. Получили переменную - тыркаемся по сокету, получили значение - ушли. Нравится? :)

ЗЫ: гораздо проще закешировать в FS/СУБД/Memcache. Но наш народ любит извращаться... Хыхы)

Пишу на похапэ (/ru/forum/342374). Аудит скриптов. За деньги. Качественно.
Лунный Кот
На сайте с 27.01.2006
Offline
222
#10
Аедрей:


Лунный Кот часто видел вас в разделе хостинг вы там с хостером(если не изм.память sweb.ru) постоянно ругались по поводу превышения нагрузки ....видимо любите все в базу засовывать....

Вам сильно изменяет память. С sweb.ru дела не имел никогда в жизни, ругался только с Есервером, и к нагрузке на сервер это ну вообще не относилось (вирт. хостинг у них меня полностью устраивает). Уж лучше не говорите, чего не знаете, а то безмерно глупо выглядите ;) Сами совет спросили, так хоть имейте мозг его осмыслить.

Кроме БД и файла, никак не сохраните для нескольких разных пользователей переменную. Её просто не существует как таковой. И файловые функции работают, как принято считать, медленнее MySQL.

Лунный Кот добавил 28.01.2009 в 01:07

Аедрей:

Я стараюсь не хранить в базе то что можно там не хранить

Флаг в руки. Храните переменную в параллельном измерении.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий