- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
есть ещё __callStatic()...
Милованов Ю.С, его нужно будет объявить глобальным + он всегда должен быть установленным.
Что мешает использовать тот же Singleton, создать класс "одиночку" Registry (паттерн Registry)?
dkameleon, да точно. Был бы __getStatic и проблемы бы не было. Но и __callStatic дает возможность писать типа CONF::get('DB')['PASSWORD'];. Наверное, так и придется сделать.
siv1987, обращение к статическому методу каждый раз.
Милованов Ю.С, мне тоже нравиться этот вариант. Но его нужно будет объявить глобальным + он всегда должен быть установленным. А мне нужна также ленивая подзагрузка. Поэтому, я и подумал об эмуляции __set, __get для статического контекста.
это по сути получается динамическая генерация класса...
как интерпретатору поступать с уже созданными инстансами класса? добавлять/удалять свойства автоматически?
dkameleon, также как и со свойствами объектов. А за __callStatic спасибо, это действительно неплохая идея.
Это плохо? Хотя сам знаю ответ.
В вашем случае да.
обращение к статическому методу каждый раз.
Не обязательно обращаться "напрямую", можно сохранить инстанс в локальную переменную или в свойство класса.
типа CONF::get('DB')['PASSWORD'];
по моему такой синтаксис в php не проканает, и все равно придется обращаться типа CONF::get('DB_PASSWORD');
И плодить ссылки в памяти. :( Да и еще больше букофф.
Проканает. get вернет массив.
Parse error: syntax error, unexpected '[', expecting ',' or ';' in C:\WebServer\Apache2.2\htdocs\site\index.php on line 7
Я вот тоже до сих пор недоумеваю, почему так нельзя.
Очень было бы удобно.
$login = mysql_fetch_assoc(mysql_query("SELECT `login` FROM tbl1 WHERE `id`='$id' LIMIT 1"))['login'];
Милованов Ю.С, причем здесь функции? Мы о методах говорили.
string(5) "hello"
Хотя у меня и ваш пример работает (PHP 5.5b4).
$login = mysql_fetch_assoc(mysql_query("SELECT `login` FROM tbl1 WHERE `id`='$id' LIMIT 1"))['login'];
У меня во всех методах так. Точно знаю, с PHP 5.4 это работает.
А у меня на 5.2.17(не надо смеятся) не работает с функциями. Предполагаю что и с классами тоже не будет. Щас попробую.
Точно, не работает. Сейчас вспомнил что читал про это на пхп.нет в разделе "что нового в версии Х". Версию не помню;)