В ASP.NET, если я объявляю статическую переменную (или объект) статическую (или если я делаю синглтон), я могу ее перенести на несколько сеансов нескольких пользователей (она была зарегистрирована в области сервера ), так что мне не нужно инициализируйте его при каждом запросе.
Есть ли такая возможность в PHP? благодаря
Вы можете настроить APC и использовать функции apc_store и apc_fetch.
Это не существует на PHP, однако вы можете сериализовать данные и поместить их либо в файл на вашем жестком диске, либо в / dev / shm /. Вы также можете использовать memcache.
Если вы поместите свои данные в / dev / shm / или используйте memcache, данные исчезнут при перезагрузке.
Вы можете сделать это с расширением PHP (написано на C).
Но если вы хотите написать его в PHP, нет. Лучшей альтернативой является запись переменной в файл (file_put_contents ()) в конце каждого запроса и открытие ее в начале каждого запроса (file_get_contents ()).
Эта альтернатива не будет работать для сайтов с большими объемами, потому что процессы будут делать чтение / запись одновременно, и мир пойдет на все BLAAA-WOOO-EEE-WOHHH-BOOOM.
К сожалению нет. static ключевое слово PHP ограничено только текущим экземпляром сценария.
Чтобы сохранить данные в экземплярах сценариев для одного сеанса, вы должны использовать функции обработки сеанса .
Чтобы сохранить данные в сеансах, вам нужно будет использовать что-то вроде memcache , однако для работы на стороне сервера требуется дополнительная настройка.
вы можете хранить сериализованные копии объекта внутри сеанса
class test {
private static $ instance;
общее имущество;
private __construct () {}
public getInstace () {
если (! самостоятельно :: $ экземпляр) {
self :: $ instance = новый тест;
}
return self :: $ instance;
}
}
$ p = test-> getInstance ();
$ p-> property = "Howdy";
$ _SESSION ["p"] = $ p;
следущая страница
$ p = $ _SESSION ["p"]; свойство echo $ p->; // "Howdy"