PHP if 문에서 변수체크들 정리 > 개발자팁

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.

PHP if 문에서 변수체크들 정리 정보

PHP PHP if 문에서 변수체크들 정리

본문

그누보드등 PHP 코드를 보면

if 문에 변수들이 있는지 체크하기 위한게 여러가지 있습니다.

정리해보고자 합니다.

 

$apple = 2;

$mango = null;

 

망고와 사과변수가있습니다

 

PHP는 8버전까지 변수를 초기화 하지않고 쓸 수가 있습니다.( 9.0부터는 무조건 초기화 하게 변경됨)

따라서 변수가 있는지 없는지 부터 체크해야됩니다.

 

기본 1

if(isset($mango)){

 // true 조건

}


 

isset 은변수가 설정되어있는지 확인합니다.

(변수가 선언되어있는지 null 과 다른지 확인합니다.)

빈문자열 , null, undefind 만 false 나머지는 true 입니다.

$mango 는 null 이므로 false 입니다.

 

 

기본 2

if($mango){

 // true 조건

}

if문안에 변수만 달랑적는 경우가 있습니다.

변수만 적었을 경우 타입에 따라 다릅니다.

 

문자열: 빈문자 제외 true

숫자: 0 제외 true

배열: 빈배열 제외 true

객체: 빈 객체 제외 true

null : false

정의 안된 변수: 경고가 발생하고 false

 

 

패턴 1

if(isset($mango) && $mango){

   // true 조건

}

 

isset () && 뒤에 변수를 적은것은 선언하지않은 변수일때 오류가 나기 때문입니다.

 

* 객체

PHP 에서는 배열을 객체로 바꾸거나 빈 객체를 만들 수가 있습니다.

$testObejct = new stdClasss();

 

하지만 객체는 empty 함수나 if(!$emptyObject) if 문으로 체크할 수없습니다

__isset() 이라는 함수 때문이라고 합니다.

 

(array)$testObejct 로 배열로 형변환 할 수있지만 이러면 배열의 특성까지 지니게 되어서

램을 더먹습니다. (nikita 의 PHP 성능영상에서 봤네요)

 

따라서 get_object_vars 함수를 통해 체크해야됩니다.

 

if(empty(get_object_vars($testObject))) {

   // 비어있는 조건

} else {

 // 비어있지 않은 조건

}

 

[1] *객체를 (array)로 형변환시 메모리 더 쓰는자료 출처

https://www.youtube.com/watch?v=JBWgvUrb-q8

추천
5

댓글 6개

전체 1,168
개발자팁 내용 검색 PHP에서

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT