- 1
- 2
- 3
function addGetParam($key,$value){
$_GET[$key]=$value;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+158
function addGetParam($key,$value){
$_GET[$key]=$value;
}
В аду найдется специальное место для таких :-)
Поскольку в рнр есть хешмеп литералы, то можно сделать как-то так:
Additionally the following key casts will occur:
- Strings containing valid integers will be cast to the integer type. E.g. the key "8" will actually be stored under 8. On the other hand "08" will not be cast, as it isn't a valid decimal integer.
- Floats are also cast to integers, which means that the fractional part will be truncated. E.g. the key 8.7 will actually be stored under 8.
- Bools are cast to integers, too, i.e. the key true will actually be stored under 1 and the key false under 0.
- Null will be cast to the empty string, i.e. the key null will actually be stored under "".
- Arrays and objects can not be used as keys. Doing so will result in a warning: Illegal offset type.
Т.е. по первому правилу должно получиться "a".
> E.g. the key "8" will actually be stored under 8
посему и ратую за разделение структур на массивы с числовым индексом и мапы - со скалярным
(случаи, когда ключ - сложен или несериализуем - не обсуждаю как априори бред)
з.ы. json - более чем подходит
> и не означали индекс, а именно ключ
Я не пойму, а в чем проблема то? Ассоциативно пихается. Ассоциативно достается. Форичем оббегается. Что еще нужно для работы с этим контейнером, как с ассоциативным массивом?
Все равно не понимаю, как надо использовать пыхомассив как ассоциативный массив, чтобы проявился какой-то баг... Сравнивать добытые из него foreach'ем ключи на === что-ли? :)
хм, надо все же добыть тот древний код (а то я еще и выпил...)
Самое забавное, что пыхомассив имеет не только ключи и индексы, но еще и порядок ;) И, в отличие от других ассоциативных контейнеров, которые или тупо сортируют все в порядке возрастания (жабий TreeMap), или как попало (жабий HashMap), пыховский "массив" обходится именно в порядке добавления...
Ну и вообще. Как можно требовать упорядоченности от ассоциативного контейнера? Вон жабий HashMap тоже не в алфавитном порядке оббегается, он теперь плохой? :)
> неявное кастование
Ну его если и убирать, то во всей пыхе.
а такое поведение "дай я угадаю, что ты хотел, и сделаю что-то за тебя" - чревато багами.
request = new Request(url,"ты","хуй","твоямать","шлюха ").addGetParam("пшел","нах");
так что это не жабастайл, это у кодеров мозги не так повернуты.
> new Request(url,"ты","хуй","твоямать","шлюха ")
конечно же, была проигнорирована. а тем не менее, тут только фигрных скобок нет, и запятая вместо двоеточия.
P.S. Хотя можно написать хелпер array() и тыкать им в морду пыхерам. Правда там можно передать джва таких литерала. А в яве с вариадик аргументом так не выйдет :)
с ней, лямбдами, перегрузкой операторов, функциями первого класса да примесями - мир покорять (и со статичной типизацией)
Питон ;)
> и со статичной типизацией
А нет, не питон ;(
1. непроизвольное форматирование отступами (ну не смогу я на нем писать однострочники)
2. более процедурным походом, когда пишем х(а) вместо а.х()
в этом плане мне более симпатичен Руби
а.х(): x - функция объекта a
теперь ты знаешь, что делать?
точка с запятой же есть
> более процедурным походом
Гвидо просто не страдает оопизмом головного мозга и позволяет использовать ту "парадигму", которая больше подходит к задаче. Идеология "все - объект" поддерживается в python полностью, так что претензия непонятна.
В одной строке может быть не больше одного двоеточия.
http://i52.tinypic.com/hu2jdc.png
И где ты тут видишь точку с запятой, чудило?
D
>А нет, не питон ;(
Увы. Вот статичного питончика бы...
Done.
Очень охуенно читается при количестве элементов так за 10 (где ключ где значение?), и как ты собираешься это читать, чтобы юзер не подсунул нечетное количество параметров? Отсос.
new Request(url,
"ты","хуй",
"твоямать","шлюха "
)
Проверка на четность в рантайме.
> где ключ где значение?
Ну можно еще вот таким, более многословным способом: Хотя это уже мало отличается от addParam.
Все это сводится к вопросу "а часто ли в жабе нужен литерал хешмапа?". В конце-концов жаба это не скриптовый язык, в которых из-за их гибкости и динамизма хешмап является краеугольным камнем (а в некоторых вообще используется вместо объектов)...
Назови навскидку какую-нибудь ситуацию, в которой нужен литерал хешмапа. Ну кроме подготовки SQL запроса/URL'а.
В пыхе они есть, следовательно - страдать хуйней незачем.
Мало конечно. Ради двух юзкейсов делать целую языковую конструкцию, намертво прибитую к одному классу HashMap? Хватит уже и StringBuilder'а намертво прибитого к плюсику... Приводи еще юзкейсы для литерала мапов, будем обсуждать :)
> keyword параметров ведь тоже нема.
Были бы полезны. Кстати, в жабе даже дефолтных параметров нет, не то что кейвордов :)
Искать и выпиливать потом легче ;)
Сравни поиск функции по имени и поиск всех $_GET, большинство из которых безобидны, и только читают.