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)에 상관없이 선언된 모든 프로퍼티에 대해 존재 여부를 확인할 수 있습니다.