>백엔드 개발 >PHP 튜토리얼 >PHP의 __unset() 메소드에 대한 자세한 설명

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

藏色散人
藏色散人원래의
2019-07-23 14:52:177111검색

__unset(), 액세스할 수 없는 속성에 대해 unset()이 호출될 때 호출됩니다.

이 메서드를 살펴보기 전에 unset() 함수를 살펴보겠습니다. unset() 함수는 지정된 변수를 삭제하고 true를 반환하는 것입니다.

그럼 객체 외부에서 객체 내부의 멤버 속성을 삭제하고 싶다면 unset() 함수를 사용할 수 있나요?

여기에는 당연히 두 가지 상황이 있습니다.

1. 객체의 구성원 속성이 공개인 경우 이 기능을 사용하여 객체 외부의 공개 속성을 삭제할 수 있습니다.

2. 개체의 구성원 속성이 비공개인 경우 이 기능을 사용하여 삭제할 권한이 없습니다.

위의 두 가지 상황이 있지만 제가 말씀드리고 싶은 것은 객체에 __unset() 메서드를 추가하면 객체 외부에서 해당 객체의 private 멤버 속성을 삭제할 수 있다는 것입니다. 객체에 __unset() 메서드를 추가한 후, 객체 외부에서 "unset()" 함수를 사용하여 객체 내부의 전용 멤버 속성을 삭제하면 객체는 자동으로 __unset() 함수를 호출하여 전용 멤버 삭제를 도와줍니다. 개체 내부의 속성입니다.

다음 코드를 참조하세요:

<?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 __unset($content) {
        echo "当在类外部使用unset()函数来删除私有成员时自动调用的<br>";
        echo  isset($this->$content);
    }
}
$person = new Person("小明", 25); // 初始赋值
unset($person->sex);
unset($person->name);
unset($person->age);

실행 결과:

当在类外部使用unset()函数来删除私有成员时自动调用的
1当在类外部使用unset()函数来删除私有成员时自动调用的
1

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

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