| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Глобальная переменная |
| Автор: Prontit 9.7.2015, 08:11 |
| Здравствуйте, имеется несколько PHP-скриптов, каждый выполняет свою функцию и вызывается разными пользователями в разное время (какие-то дёргаются кроном). Для работы каждый скрипт должен использовать переменную, принимать ее текущее значение и изменять на какое-то другое. Эту переменную необходимо где-то хранить. Я думаю, не очень рационально для одной переменной создавать таблицу (например, на mysql), чтобы там в одном поле хранить это значение. Создать файл, и читать значение из него, тоже вариант не оптимальный. Есть возможность в PHP создать глобальную переменную, чтобы получать/изменять ее значение из любого скрипта на этом сервере? Может вопрос глупый, но я не смогу найти информацию... Заранее благодарю! |
| Автор: ksnk 9.7.2015, 10:48 |
| Prontit, memcache? |
| Автор: baldina 9.7.2015, 14:34 |
| вопрос глупый - в том смысле, что скрипты, запускаемые кроном, это разные процессы, не связанные между собой, общей переменной у них быть не может. для обмена данными между процессами используется https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D0%B6%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BD%D0%BE%D0%B5_%D0%B2%D0%B7%D0%B0%D0%B8%D0%BC%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5(interprocess communication) - это различные методы (в т.ч. файлы и каналы). можно использовать и сетевые службы (в том числе сетевые субд, memcache и т.д.) php поддерживает и ряд механизмов IPC (в т.ч. каналы, семафоры, разделяемую память), и многие сетевые службы. во всех случаях есть преимущества и недостатки, поэтому выбор зависит от конкретной задачи. а чем вам не нравятся файлы и субд? |
| Автор: Prontit 9.7.2015, 14:47 | ||||||||
не то что не нравится, просто думаю что нецелесообразно ради хранения одной переменной поднимать мускуль, создавать базу/таблицу. С файлом тоже самое. Я думал, что можно создать какую-то глобальную переменную, которая будет отовсюду доступна. Мне нужно хранить всего-то одно значение. Ну если нет такой возможности, придется БД или файл использовать. Вот был бы какой-нибудь конфиг файл в пхп, куда можно было написать
глупости?) Добавлено через 50 секунд
возможно, не знал о существовании. почитаю. Спасибо! |
| Автор: baldina 9.7.2015, 15:40 | ||
| если у вас еще не используется субд или memcache, поднимать их для этой цели - из пушки по воробьям. файл имхо наиболее легковесное решение
|
| Автор: Prontit 9.7.2015, 16:01 | ||||
согласен, но доя того чтобы считать/записать переменную необходимо написать неодну строчку кода. Хотелось бы сделать проще. Типа того, как я описал выше. |
| Автор: Prontit 13.7.2015, 14:24 | ||||
Прочитал про SetEnv в Апаче. Ее потом можно из пхп читать
и писать
|
| Автор: _zorn_ 14.7.2015, 06:14 |
| А крон дергает скрипты через апач ? |
| Автор: Prontit 14.7.2015, 07:48 | ||
Не совсем правильно выразился. Скрипт запускается программно из десктопных приложений и пользователями из браузера. |
| Автор: ksnk 14.7.2015, 10:42 |
На компьютере-сервере есть пользователи с десктопными приложениями? Не смущает, что в этих случаях будут в каждом случае собственные переменные окружения? |