Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Misha v.3 03.12.2006 12:51 / 03.12.2006 12:54
т.к. основная фишка, ради которой и используют биты, состоит в том, что несколько битов может быть установлено одновременно, т.е. в случае switch нам нужно будет идти как бы по нескольким веткам одновременно. однако switch этого не умеет, т.к. он позволяет делать выбор лишь одного варианта из нескольких.@right_name[iType] ^if(^tAccessTypes.locate($tAccessTypes.type & $iType)){ $result[$tAccessTypes.title] }{ $result[] }и использовать switch:
^switch[^right_name(^hItem.type_is.int(0))]{ ^case[basket]{ код } ^case[ordered]{ код } ^case[confirmed]{ код } }кроме того я немного иначе написал бы метод right_is (не знаю, эффективнее он стал бы или нет, проверьте сами):
@right_is[sTitle;iType] $result(^tAccessTypes.locate($tAccessTypes.title eq $sTitle && $tAccessTypes.type & $iType)) # end of @right_is[]P.S. перечислять в списке локальных переменных входные переменные нет необходимости, они и так локальные.