Например:
<?php function get_current_user_id(){ static $id; if(!$id){ $id = 5; echo "Id set."; } return $id; } $id = get_current_user_id(); $id2 = get_current_user_id(); $id3 = get_current_user_id(); echo "IDs: ".$id." ".$id2." ".$id3; ?>
// Выход: Id set.IDs: 5 5 5
- Доступ к нестатистическому свойству из статического метода
- PHP неправильно обрабатывает мой статический вызов
- Зачем возвращать новый статический? (PHP)
- Доступ к константам класса из экземпляра, хранящегося в другом классе
- PHP использует статические методы в объектном контексте
- Статические методы в PHP: зачем?
http://codepad.org/jg2FR5ky
Таким образом, предположительно повторяющиеся вызовы для получения идентификатора пользователя просто выполняют простой возврат идентификатора, все еще находящегося в памяти. Я не знаю, является ли это идиоматическим использованием функций php. Это похоже на синглтон, за исключением OO, и я никогда не слышал и не видел других людей, использующих его, поэтому мне интересно, есть ли недостатки в использовании статики таким образом, или если есть ошибки, которые я должен знать для более сложных случаев использования статики в функциях.
Итак, с какими проблемами я могу столкнуться с этим типом использования статики?