>  기사  >  백엔드 개발  >  PHP의 __isset() 메소드에 대한 자세한 설명

PHP의 __isset() 메소드에 대한 자세한 설명

藏色散人
藏色散人원래의
2019-07-22 13:21:3215829검색

__isset(), 액세스할 수 없는 속성에 대해 isset() 또는 empty()가 호출될 때 호출됩니다.

이 메서드를 살펴보기 전에 isset() 함수를 사용하는 방법을 살펴보겠습니다. 변수가 설정되어 있는지 확인합니다. 이 함수는 변수를 매개변수로 전달하고 전달된 변수가 존재하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

그러면 객체의 멤버가 설정되었는지 확인하기 위해 객체 외부에서 isset() 함수를 사용하는 경우 이를 사용할 수 있나요?

객체의 멤버가 공개인 경우 이 함수를 사용하여 멤버 속성을 측정할 수 있습니다. 그 이유는 비공개 멤버 속성이 캡슐화되어 있기 때문입니다. 외부에서는 보이지 않습니다. 그러면 비공개 멤버 속성이 설정되었는지 확인하기 위해 객체 외부에서 isset() 함수를 사용할 수 없나요? 물론 가능하지만 확정된 것은 아닙니다.

클래스에 __isset() 메서드만 추가하면 됩니다. 클래스 외부에서 isset() 함수를 사용하여 객체의 private 멤버가 설정되었는지 확인하면 클래스의 __isset이 자동으로 호출됩니다. 방법은 이러한 작업을 완료하는 데 도움이 됩니다.

__isset()의 역할:

액세스할 수 없는 속성에서 isset() 또는 empty()가 호출되면 __isset()가 호출됩니다.

아래 코드 데모를 참조하세요.

<?php
class Person
{
    public $sex;
    private $name;
    private $age;
    public function __construct($name="",  $age=25, $sex=&#39;男&#39;)
    {
        $this->name = $name;
        $this->age  = $age;
        $this->sex  = $sex;
    }
    /**
     * @param $content
     *
     * @return bool
     */
    public function __isset($content) {
        echo "当在类外部使用isset()函数测定私有成员{$content}时,自动调用<br>";
        echo  isset($this->$content);
    }
}
$person = new Person("小明", 25); // 初始赋值
echo isset($person->sex),"<br>";
echo isset($person->name),"<br>";
echo isset($person->age),"<br>";

실행 결과는 다음과 같습니다.

1 // public 可以 isset()
当在类外部使用isset()函数测定私有成员name时,自动调用 // __isset() 内 第一个echo
1 // __isset() 内第二个echo
当在类外部使用isset()函数测定私有成员age时,自动调用 // __isset() 内 第一个echo
1 // __isset() 内第二个echo

위 내용은 PHP의 __isset() 메소드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.