Быстрая проверка на ненулёвость
if($id_product * $id_boutique * $id_top > 0)
Примерно так же можно проверить, является ли хоть одна из проверяемых строк непустой:
if($name_product . $name_boutique . $name_top != "")
Я рисую красками жизни: мое творение — моя жизнь. (Сузуки)
if($id_product * $id_boutique * $id_top > 0)
if($name_product . $name_boutique . $name_top != "")
закончил в 21:02
4 комментов:
Это может быть с точки зрения набора исходного текста быстро... прототипирования... но вот если смотреть на оптимизацию... извините!
А чем плохо?
Умножение более ресурсоемкая операция чем сравнение три раза на "не 0". А тем более конкатенация строк.
Твой пост вызвал некоторые сомнения в правильности моей позиции. После серии тестов выявился определённый дуализм:
Да, умножение и конкатенация работают дольше в этих условиях за счёт того, что чаще всего if() не отработает до конца: как только найдётся предикат, равный ЛОЖЬ, сработает соответствующая ветка условного оператора. А умножение и конкатенация предполагают полное вычисление выражения. Обгон моего способа на 60%.
C другой стороны, если хоть немного изменить условия (заменить условие ">0" на ">=0", или AND на OR, или вообще все переменные не подходят под условие, что предполагает вычисление всех предикатов), то предложенный мной способ чуть-чуть быстрее, процента на 2 :]
Таким образом, должен признать, что Бомж прав.
Отправить комментарий