2016-08-03 5 views
4

이 코드는 원하는대로 작동하지만 if 문 중괄호 안에 아무 것도하지 않아도되는지 궁금합니다. 이것을 작성하는 더 좋은 방법이 있습니까?if 문에서 빈 중괄호입니까?

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

왜 거꾸로 된 테스트를 사용하지 않습니까? ie (! empty ($ data) && $ data! = "unanswered")) – tdk001

+1

읽기 쉬운 조건을 사용하십시오. 빈 블록 ('{}')을 사용하지 않으려면 조건을 반전하지 마십시오. – axiac

답변

16

대신 부정을 할 수

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

DeMorgan의 법칙은 부울 표현식을 무효화합니다.

2

이 대부분의 다른 언어 PHP 법률이고, 그러나 당신은이에 if 문을 단축 부울 법 드 모르 강의 법칙을 사용할 수 있습니다 :

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

귀하의 명세서가 첫 번째 중괄호 세트에 오도록 조건을 취소해야합니다. 첫 번째 중괄호 세트에 진술을 사용하면 두 번째 세트를 생략 할 수 있습니다.

1

빈 중괄호를 사용하는 것이 유효합니다. 그러나, 소프트웨어 공학 관점에서 그것은 매우 나쁜 디자인입니다. DeMorgan의 법칙을 더 잘 사용하십시오 (앞의 주석에서이를 볼 수 있습니다). 다른 개발자가 이해할 수있는 고품질의 코드를 작성하는 방법을 배우는 것이 좋습니다.

0

귀하의 질문에 대한 답변은 가능합니다. 우리는 때로는 거기에 놓을 것이지만 나중에는 무언가를 생각해 낼 수 있다고 생각할 때 그것을합니다.

많은 사람들이 조건을 부정 할 수 있다고 제안 했으므로 미래 코드를 시각화하는 방법에 따라 다릅니다.

1

이것은 일반적인 문제입니다. 빈 괄호는 꽤 못생긴하지만 허용됩니다. 효과적이고 읽기 쉬운 절을 만들려면! (절)을 사용하십시오. 사용법 :

if(! (empty($data) || $data == "unanswered")) { 
    // do something 
}