- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
private $data = array(
'name' => '',
'organization' => '',
'mail' => '',
'phone' => '',
'comment' => '',
'model' => '',
);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+155
private $data = array(
'name' => '',
'organization' => '',
'mail' => '',
'phone' => '',
'comment' => '',
'model' => '',
);
Так адекватные люди создают асоциативные массивы? Или по другому?
чем косвенно это выяснять, лазия по всей проге.
А с другой - никто же не проверяет соответсвие тому, как там вначале задекларировано - т.е. с тем же успехом можно было комментарий написать - что коментарий, что это объавление надо править вручную при изменении полей.
Будем честны: в скриптовых языках разницы между "объектами" и "ассоц массивами" быть не должно.
Lua всё делает правильно. В каком-то смысле и JS, хотя там есть странный Map
Для коллекции однородных сущностей. Как массивы, но вместо смещения - ключ. По обычным связным массивам искать по конкретному ключу дорого (например хэдер по его имени, а их статичным объектом не опишешь ибо их дофига, сервер может дефайнить какие угодно свои), поетому и придумали хэши.
> Будем честны: в скриптовых языках разницы между "объектами" и "ассоц массивами" быть не должно.
Язык - инструмент реализации информационной системы. Если программер использует структуры данных упуская их семантику, то это приводит к перлам и костылям типа такого: http://govnokod.ru/27396 (на месте нынешнего меня, я бы в головной структуре делал 2 поля: chars и total, в первом бы хранил хэш "символ-вес"). То что в JS нет на уровне языка разницы между объектами и хэшом - упущение дизайна (зачем для языка, который изначально разрабатывался как скриптуха для интерактива в веб-документиках, такой замороч?).
В PHP же оно есть, так почему бы не использовать объект если заранее известно что там будет храниться и как с етими данными роботать?
То, что в языках типа python есть для этого отдельные сущности, приводит к тому, что одно и тоже делается разными способами
> То, что в языках типа python есть для этого отдельные сущности, приводит к тому, что одно и тоже делается разными способами
Так ето свойство любого языка. There's more than one way to solve a problem.
Массив последователен, а хеш нет. Они используются для разных задач, и обычно всегда понятно нужен ли мне массив или хеш.
Что такое "по каким попало указателям" мне особо понятно, тут трудно прокомментировать. Процедуры в Си обычно раскладывают по модулям (единицам странсляции, и соответствующим им заголовочным файлам).
Структура и ассоциативный массив имеют одинаковую семантику: они отображают ключ на значение.
В языках типа Java, C#, C++ эти сущности разные по двум причинам:
* Структура намного эффективнее, ведь её поле это просто смещение
* Декларация структуры содержит знание о типе
В скриптовом языке обе эти причины неважны: скорость там всегда плохая, а статической типизации там нет.
Нет никакой причины разделять случаи
foo.bar
и
foo["bar"]
часто бывает непонятно какой вариант выбрать, и почему.
>. There's more than one way to solve a problem.
Это плохо, и лучше бы уменьшать количество таких кейсов.
В общем - что бы не заморачиваться с запятыми
я правда не знаю, потому что я - синглтон.
<<
- Друзья мои, я бездетный!... Моя мама была бездетной, и бабушка была бездетной...
- А откуда же ты?!?
- Я?.. Я из Ялты...
>>