2016-08-03 2 views
4

Этот код работает для того, что я хочу, но мне интересно, нормально ли что-либо делать внутри фигурных скобок оператора if. Есть ли лучший способ написать это?Являются ли пустые фигурные скобки, если утверждения хорошо?

if(empty($data) || $data == "unanswered")) { 
//do nothing 
} else { 
    //display data 
    echo $data; 
} 
+2

Почему бы вам не использовать инвертированный тест? т. е. если (! empty ($ data) && $ data! = "unanswered")) – tdk001

+1

Используйте условие, которое легче читать. Не инвертируйте условие, чтобы избежать использования пустого блока ('{}'). – axiac

ответ

16

Вы могли бы сделать отрицание вместо:

if(!empty($data) && $data != 'unanswered') 
    echo $data; 
2

Это законно в PHP и большинство других языков, но вы можете использовать булеву закон закон де Моргана укоротить, если заявление на это:

if(!empty($data) && $data != "unanswered"){ 
    echo $data; 
} 

Закон DeMorgan просто отрицает булево выражение.

0

Вам следует попытаться изменить свое условное положение, чтобы ваши утверждения оказались в первом наборе фигурных скобок. С вашими утверждениями в первом наборе фигурных скобок вы можете опустить второй набор.

1

Имеются в наличии пустые фигурные скобки. Однако, с точки зрения программного обеспечения, это очень плохой дизайн. Вам лучше использовать закон DeMorgan (это можно увидеть в предыдущих комментариях). Лучше начать учиться писать качественный код, который могут понять другие разработчики.

0

Ответ на ваш вопрос: да, вы можете это сделать. Мы делаем это иногда, когда видим, что мы можем придумать что-то, что нужно положить туда, но только на более позднем этапе.

Как многие парни предложили вы можете свести на нет условие, но все зависит от того, как вы визуализируете будущий код.

1

Это распространенная проблема. Пустые скобки довольно уродливые, но разрешены. Для создания эффективного и читаемого предложения используйте! (Пункт). Использование:

if(! (empty($data) || $data == "unanswered")) { 
    // do something 
} 
Смежные вопросы