PHP에서 Property_Exists 함수는 객체에 특정 속성이 있는지 확인하는 데 사용됩니다. 특히 객체의 특성이 존재하는지 동적으로 확인해야 할 때 매우 유용한 도구입니다. 이 기능을 사용하면 존재하지 않는 속성에 직접 액세스 할 수 있으므로 잠재적 오류 나 예외를 피할 수 있습니다.
Property_Exists 함수의 구문은 다음과 같습니다.
<span><span><span class="hljs-title function_ invoke__">property_exists</span></span><span>(</span><span><span class="hljs-keyword">object</span></span><span> </span><span><span class="hljs-variable">$object</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$property</span></span><span>): </span><span><span class="hljs-keyword">bool</span></span><span>
</span></span>
$ 객체 : 속성을 확인 해야하는 객체 인스턴스.
$ 속성 : 확인할 속성 이름은 문자열이어야합니다.
이 함수는 부울 값을 반환합니다.
객체에 지정된 속성이 있으면 true를 반환합니다.
객체에 지정된 속성이없는 경우 False가 반환됩니다.
다음은 property_exists 함수의 사용을 보여주는 간단한 예입니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">Person</span></span><span> {
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-variable">$name</span></span><span>;
</span><span><span class="hljs-keyword">private</span></span><span> </span><span><span class="hljs-variable">$age</span></span><span>;
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">__construct</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$name</span></span></span><span>, </span><span><span class="hljs-variable">$age</span></span><span>) {
</span><span><span class="hljs-variable language_">$this</span></span><span>->name = </span><span><span class="hljs-variable">$name</span></span><span>;
</span><span><span class="hljs-variable language_">$this</span></span><span>->age = </span><span><span class="hljs-variable">$age</span></span><span>;
}
}
</span><span><span class="hljs-variable">$person</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">Person</span></span><span>(</span><span><span class="hljs-string">"John"</span></span><span>, </span><span><span class="hljs-number">30</span></span><span>);
</span><span><span class="hljs-comment">// 공개 속성을 확인하십시오 'name' 존재합니까?</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">property_exists</span></span><span>(</span><span><span class="hljs-variable">$person</span></span><span>, </span><span><span class="hljs-string">'name'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"재산 'name' 존재하다。\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"재산 'name' 不존재하다。\n"</span></span><span>;
}
</span><span><span class="hljs-comment">// 조사하다私有재산 'age' 존재합니까?</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">property_exists</span></span><span>(</span><span><span class="hljs-variable">$person</span></span><span>, </span><span><span class="hljs-string">'age'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"재산 'age' 존재하다。\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"재산 'age' 不존재하다。\n"</span></span><span>;
}
</span><span><span class="hljs-comment">// 조사하다不존재하다的재산 'address'</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">property_exists</span></span><span>(</span><span><span class="hljs-variable">$person</span></span><span>, </span><span><span class="hljs-string">'address'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"재산 'address' 존재하다。\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"재산 'address' 不존재하다。\n"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
출력 결과는 다음과 같습니다.
<span><span>재산 </span><span><span class="hljs-string">'name'</span></span><span> 존재하다。
재산 </span><span><span class="hljs-string">'age'</span></span><span> 존재하다。
재산 </span><span><span class="hljs-string">'address'</span></span><span> 不존재하다。
</span></span>
Property_Exists 함수는 객체 인스턴스에 지정된 속성이 있는지 여부를 확인할뿐만 아니라 속성 (공개, 보호, 개인)의 가시성을 확인합니다. 이것은 다음을 의미합니다.
재산이 개인이거나 보호 되더라도 사실 반환됩니다.
그러나 속성 값이 초기화되는지 확인하지 않습니다.
예를 들어, 사유 재산이 생성자에서 초기화되지 않은 경우 속성이 존재하는지 확인하고 속성의 실제 가치에 관심이 없는지 확인하기 때문에 Property_Exists는 여전히 TRUE를 반환합니다.
때로는 속성이 존재할뿐만 아니라 특정 속성에 액세스하기 전에 초기화되어 비어 있지 않도록 Property_Exists 및 ISSET 또는 비어있는 기능과 함께 사용할 수 있습니다. 예는 다음과 같습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">Person</span></span><span> {
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-variable">$name</span></span><span>;
</span><span><span class="hljs-keyword">private</span></span><span> </span><span><span class="hljs-variable">$age</span></span><span>;
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">__construct</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$name</span></span></span><span>) {
</span><span><span class="hljs-variable language_">$this</span></span><span>->name = </span><span><span class="hljs-variable">$name</span></span><span>;
}
}
</span><span><span class="hljs-variable">$person</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">Person</span></span><span>(</span><span><span class="hljs-string">"John"</span></span><span>);
</span><span><span class="hljs-comment">// 조사하다 'age' 재산존재합니까?并且已初始化</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">property_exists</span></span><span>(</span><span><span class="hljs-variable">$person</span></span><span>, </span><span><span class="hljs-string">'age'</span></span><span>) && </span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$person</span></span><span>->age)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"재산 'age' 존재하다并且已初始化。\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"재산 'age' 不존재하다或未初始化。\n"</span></span><span>;
}
</span><span><span class="hljs-comment">// 조사하다 'name' 재산존재합니까?并且已初始化</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">property_exists</span></span><span>(</span><span><span class="hljs-variable">$person</span></span><span>, </span><span><span class="hljs-string">'name'</span></span><span>) && </span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$person</span></span><span>->name)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"재산 'name' 존재하다并且已初始化。\n"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Property_Exists 는 PHP에서 매우 실용적인 기능으로 객체의 특정 속성이 존재하는지 확인하는 데 도움이됩니다. 속성에 직접 액세스하는 것과 달리 Property_Exists를 사용하면 존재하지 않는 속성에 액세스하여 발생하는 오류를 효과적으로 피할 수 있습니다. 이 기능을 통해, 특히 동적으로 생성 된 객체 또는 데이터 불확실성을 다룰 때 객체 속성의 존재 또는 부재를보다 안전하게 처리 할 수 있습니다.