반응형
속성이 있는지 테스트
나는 보다 빠른 PHP 문서 를 읽고 다음 과 같은 두 가지 조합을 사용해야합니다.isset()
property_exists()
if (isset($this->fld) || property_exists($this, 'fld')) {
그런데 왜 나는 그냥 isset을 사용할 수 없습니까?
if (isset($this->fld)) {
왜냐하면 property_exists
isset이 그 구별을하지 않는 클래스 / 객체의 정의 된 속성조차도 알려줍니다. 예를 들면 :
class A {
protected $hello;
}
class B {
}
클래스 Aproperty_exists($this, 'hello')
에서 사용 하면 반환 되고 클래스 B 에서 사용 하면 반환 됩니다. 두 경우 모두 반환 됩니다 .true
false
isset
false
프로그램이 어떻게 수행되는지에 따라 다르지만 매뉴얼의 주석을 읽으면 함수의 특이성을 설명하는 데 도움이 될 것입니다.
http://php.net/manual/en/function.property-exists.php
중요한 부분은 다음과 같습니다.
설명서에는 런타임에 개체에 추가하는 새 속성의 중요한 경우가 나와 있지 않습니다. 실제로 property_exists는 이러한 속성에 대해 묻는 경우 true를 반환합니다.
참고 URL : https://stackoverflow.com/questions/3432779/testing-if-property-exists
반응형
'Program Tip' 카테고리의 다른 글
Angular 1.5 구성 요소 대 이전 지시문-링크 함수는 어디에 있습니까? (0) | 2020.12.12 |
---|---|
kubectl을 사용하여 Kubernetes 마스터에 대한 자세한 정보를 찾는 명령은 무엇입니까? (0) | 2020.12.12 |
Windows 플랫폼에 Emacs 플러그인 (대부분 .el 파일)을 설치하는 방법은 무엇입니까? (0) | 2020.12.12 |
균일 비용 검색과 Dijkstra의 알고리즘의 차이점은 무엇입니까? (0) | 2020.12.12 |
블루투스를 통해 iOS와 Android간에 데이터를 전송 하시겠습니까? (0) | 2020.12.12 |