2012-02-11 2 views
1

을 수행하는내가 변수가 내가 코드를 사용하여 정의되지 않은시기를 결정하려고 할 때마다, 가장 좋은 방법은 현재이

($ 변수 == "")

그러나 내가이있는 경우 기능을 사용하는 사람들에 의해 말되었다

(빈 ($ 변수))

이에 읽는 경우, 값이 0이면 false를 반환하고, 내가 캔트이 제로이다 배열 값의 많음이있다 false를 반환합니다. 나는 항상 $ variable == 0을 추가하여 이것을 건너 뛸 수 있었다.)

하지만이 모든 것이 빈 변수를 결정하는 데 선호되는 이유는 무엇입니까? 효율입니까, 아니면 그 이상입니까?

$a = 4; 
echo isset($a) ? 'a' : 'no a'; // a 
echo isset($b) ? 'b' : 'not to b'; // not to b 
+0

이 모든 것은 사용자의 필요에 따라 다릅니다. 'isset()'와'empty()'가 주요한 메소드입니다. – Brad

+0

if ($ var == "") 간단한 if 문보다 이러한 방법이 더 좋은 이유는 무엇입니까? – JimmyBanks

답변

1

는 엄격한 타입의 비교를 사용 글쎄, 이것은 내 방식이고, 아무 문제가 없다고 생각하지 않는다. ...

if(!$variable) 

"", 0, (정의되지 않음) 등의 경우 true를 리턴합니다. 양식 입력에 대한 모든 공백 값.

+0

괜찮아요 isset는 실제로 내가 궁금해하는 것을 남겨두고있는 것이 더 이상합니다. 실제로 isset 또는 empty를 사용하는 것이 if ($ var == "")에 유리한 이유는 실제로 실행되는 코드로 결과가 나오기 때문입니다. – JimmyBanks

+1

변수가 아직 설정되지 않은 경우 PHP 구성 방법에 따라 변수가 계속 행복해 지거나 오류가 발생하여 중지 될 수 있습니다. 그것이 계속된다면, 아직 존재하지 않는 변수로부터 시도하고 읽는 데 더 오래 걸릴 것입니다. (읽기 : 일반적으로 신경 쓰지 않는). 'isset()'을 사용하는 주된 이유는 ** 올바른 방법 **을 점검하기 때문입니다 : P 오, 치명적인 오류입니다. 그것은 너무 큰 거래입니다. – Joe

+0

그래, 그 효율성, 나는 결코 그것으로부터 오류 메시지를받지 못했고 나는 오류 메시지를 가지고있다. 아쉽게도 내 코드를 적절한 용도로 전환하기 시작합니다. 감사합니다. – JimmyBanks

-1

: 변수가 아직 정의되지 않은 경우, false를 반환 - 당신은 isset()를 사용한다, 일반적으로

if (empty($variable) && $variable !== 0) // !== instead of != 

: 당신이 알 필요가있는 경우

+1

$ 변수가 설정되지 않은 경우 오류가 발생합니다. – Umbrella

+0

그것은 절대로 나를 위해 ... 왜 이게지? – Deji

+0

PHP의 오류보고 설정에 알림 수준 오류가 없어야합니다. 또는 확인하지 않은 파일에 로깅 중입니다. 아마 오류보고 수준. – Umbrella

관련 문제