Php maed me sad
Сайт про то, какое php гавно неконсистентное.
Помимо того, что перечислено (хотя я не со всем сталкивался), меня в последнее время раздражает, что при нестрогом типировании (это так по-русски называется?), которое, наверное, благо, пустая или несуществующая переменная не считается пустым массивом.
Т.е. foreach ($a as $key => $value)
будет ругаться на то, что $a не массив, если $a — не массив (смешно, я знаю).
В моем понимании, $a="";
должно быть «равно» $a=array();
Аргументация?
И в первом и во втором случае можно сделать $a[]="new"
, и оно будет работать.
Ну и вообще можно по foreach и строку перебирать, если эта строка, почему бы и нет, раз остальное позволять работать со строкой как с «псевдомассивом».
Еще на стыке нестрогого типирования в php и mongodb иногда случаются смешные вещи, типа переменных «145», которые вдруг оказываются строкой, но это не проблема языка.
ЧПУ sucks balls
ЧеловекоПонятные Урлы — это фетиш.
Я буду отказываться от них везде, где можно. В урле, типа www.hobius.com/?user=smirnov я не вижу ничего плохого, например.
Особенно когда по адресу site.com/users/ нет ничего, а по адресу site.com/users/username уже есть.
Ну и заодно, по аналогии с «твиттерскими» адресами, типа twitter.com/#/something, придумал самый простой способ реализовать ЧПУ почти везде безо всяких mod_rewrite и прочего.
Надо вместо таких урлов:
spectator.ru/life/fiction/blue_meteorite
Делать вот такие:
spectator.ru/?/life/fiction/blue_meteorite
Тогда, например, в php мы все получаем в $_SERVER["QUERY_STRING"].
21,88%
base_convert (md5($something), 16, 36);
на 21,88% круче, чем
md5($something);
Discuss!
Update:
На 31,25% круче:
$test = trim (base64_encode (md5 ($something, true)),"==");
или (php<5)
$test = trim (pack ("H*", base64_encode (md5 ($something))),"==");
И обратно:
$test = unpack ("H*", base64_decode ($test."==")); $test=$test[1];
ПОХАПЭ
Смотрю движки основных форумов (потом расскажу, зачем).
Смерть, пиздец, жопа, убивать, убивать, убивать.
PHP-программисты бывают двух видов:
1. Те, кто не умеют программировать вообще. Специально для таких же был придуман BASIC. «Сделай инструмент для идиота, и только идиот захочет им пользоваться».
2. Те, кто умеют программировать на других языках. И только на них. Если утрировать, то когда ты узнаешь в PHP-коде привычный ассемблерный синтаксис, волосы в анусе становятся дыбом и седеют.
3. Болк.
Первые и вторые — дураки, просто вторые более изобретательные.
Ну, чтобы не быть голословным: при изобилии говна в таблицах — форум vBulletin создает всего-то чуть более сотни разных табличек, настройки форума они хранят в виде бинарной маски в цыфирке.
Причем в int(10), ага.
В чем профит-то? Место не экономится. Скорость выборки роли не играет. Работать с маской все равно придется, как со строкой, а не на побитовом уровне, decbin возвращает число в двоичной системе без ведущих нулей, и так далее.
(Мне тут уже подсказали, что это я на самом деле не умею работать с бинарными масками в PHP).