11 февраля 2006

Множества в PHP

В Паскале есть замечательная штука - множество (set). Благодаря ему этот вариант:
IF ((type=1) OR (type=3) OR (type=5) OR (type=11))
THEN ...

может быть успешно заменён на:
IF type IN [1,3,5,11]
THEN ...

До недавнего времени я считал, что в РНР такое невозможно в принципе. Однако по небольшому раздумию я пришёл к такому коду, который не уступает паскалевскому:
if(in_array($type, array(1,3,5,11))) ...

Разумеется, и в Паскале, и в РНР перечисление может быть заменено переменной соответствующего типа.

3 комментов:

ThinkingCat комментирует...

Хуже. Он медленнее, потому что это линейный поиск. Используй хэш массивы.
Сразу видно, теорию алгоритмов не преподавали, и C++ нормально тоже не давали. Учись сам. Веб программирование вебпрограммированием с базаданными на полопам, но такие вещи все-таки нужно знать.

Анонимный комментирует...

thinkingcat, Батан ты бы показал как можно сеты заменить в пхп, а не писал тут коменты читая которые люди ищущие полезную информацию принимали тебя за идиота!

Сергей комментирует...

вообще в php массивы это и есть хеш таблицы

Отправить комментарий