Борьба за трезвость
Сегодня выходной, хотел было достать из холодильника бутылочку Каберне, которая стоит там с последнего сабантуя, но в фосе наткнулся на видеозаписи лекций о вреде этого дела в исполнении некоего Жданова, собственно обратил внимание только по причине того что они (файлы с лекциями) лежали рядом с Норбековым.
Что я могу сказать. Сильно, очень сильно, я прослушал только половину пока на обязательно дослушаю до конца.
Вино похоже придется вылить.
Правда несет этот Жданов полный бред, хотя и не совсем лишенный смысла. Возможно кто нибудь послушав его действительно бросит пить, курить, колоться, заниматься сексом....
Хотя про секс это наверно лишнее.
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.