PHP4: это не баг, это системная функция
Сегодня потратил несколько часов не поиск банальнейшего бага. Дело в том что в PHP ссылку нельзя сделать статической, так как я перешел уже на PHP5 то об этом я не всегда помню.
Не работает:
Работает:
В пятом PHP будет работать только первый вариант, второй правда хотя и со скрипом, то тоже будет (будет ругаться чтобы к функции поставили модификатор static и не использовали никаких амперсандов у оператора new)
Перебираем XML ноды
Обычно я использлую цикл while когда нужно сделать итерацию по дочерним элементам XML нода, а тут решил что цикл for для этих целей подходит гораздо лучше.
было:
стало:
Статические пременные класса vs. суперглобальных переменных
Идея глобальных переменных просто замечательная, однако многие не рекомендуют их использовать, т.к. это нарушает архитектуру программы и может привести к непредвиденным результатам, так это или не так, однако, наряду с недостатками есть у них и достоинства - к ним всегда можно обратиться из любого места в программе, особенно не заморачиваясь.
В PHP есть также т.н. суперглобальные переменные - $_POST, $_GET.
Уж не знаю почему разработчики их допустили, в ведь у суперголобальных переменных недостатки глобальных переменных становятся супернедостатками. Ну да не об этом речь.
Захотелось мне сделать свои суперглобальные переменные куда я хочу поместить значения из $_POST и $_GET, но без magic_quotes.
Зачем это нужно? Да просто мне не очень хотелось портить оригинальные значения переменных из соображений универсальности кода.
Как быть? Суперглобальные переменные нельзя создать - они накрепко зашиты в PHP и новые суперглобальные переменные сделать невозможно, но я нашел один выход из данной ситуации.
PHP5 позволяет создавать статические переменные класса, т.к. область видимости класса - весь код, то и полученная переменная ведет себя как суперглобальная. Красота.
При этом полученные переменные Site::$POST и Site::$GET ведут себя также как и аналогичные классические аналоги $_POST и $_GET.
Microsoft forever!
Это лучшее изобретение после стержней из синей непрозрачной пластмассы для шариковых ручек с синими чернилами - Прогрессбар, который не показывает прогресс.
Mикрософт и раньше радовал подобными шедеврами, но сейчас порадовал особенно. После того как он минут пятнадцать пытался скачать обновления, я снес процесс нахер и запустил без скачивания обновлений ибо непонятно будет он скачивать обновления еще пятнадцать минут или еше пятнадцать часов.


