Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP property_exists() 함수 완벽 가이드 – 객체·클래스 프로퍼티 존재 여부 확인하기

property_exists() 함수는 지정한 객체(object) 또는 클래스(class)에 특정 프로퍼티(속성)가 존재하는지 확인하는 PHP 내장 함수입니다. isset()과 달리 프로퍼티 값이 NULL이더라도 프로퍼티 자체가 선언되어 있으면 true를 반환한다는 점이 특징입니다.

문법(Syntax)

property_exists(object, property)

매개변수(Parameters)

  • object / class − 검사 대상이 되는 객체 인스턴스 또는 클래스 이름

  • property − 존재 여부를 확인할 프로퍼티의 이름

반환값(Return Value)

property_exists() 함수는 다음과 같은 값을 반환합니다.

  • TRUE − 해당 프로퍼티가 존재하는 경우

  • FALSE − 해당 프로퍼티가 존재하지 않는 경우

  • NULL − 오류가 발생한 경우 (예: 잘못된 입력값)

사용 예제

다음은 property_exists() 함수의 기본적인 사용 예제입니다.

<?php
    class Demo {
        public $one;
        private $two;
        static protected $VAL;

        public static function checkProperty() {
            // 클래스 이름으로 private 프로퍼티 존재 여부 확인
            var_dump(property_exists('Demo', 'two'));
        }
    }

    // 클래스 이름으로 확인
    var_dump(property_exists('Demo', 'one'));

    // 객체 인스턴스로 확인
    var_dump(property_exists(new Demo, 'one'));
?>

출력 결과(Output)

위 예제를 실행하면 다음과 같은 결과가 출력됩니다.

bool(true)
bool(true)

참고 사항

  • property_exists()는 객체 인스턴스클래스 이름 문자열 두 가지 방식 모두로 호출할 수 있어 유연하게 활용할 수 있습니다.

  • isset()은 프로퍼티 값이 NULL이면 false를 반환하지만, property_exists()는 값과 관계없이 프로퍼티가 선언되어 있는지만 검사합니다.

  • 접근 제한자(public, private, protected)에 상관없이 선언된 모든 프로퍼티에 대해 존재 여부를 확인할 수 있습니다.