>백엔드 개발 >PHP 문제 >PHP 매직 메소드 __unset()은 언제 호출됩니까?

PHP 매직 메소드 __unset()은 언제 호출됩니까?

青灯夜游
青灯夜游원래의
2020-08-19 16:05:383136검색

접근할 수 없는 속성을 삭제하기 위해 unset() 함수가 호출될 때 PHP 매직 메서드 __unset()가 호출되며, 속성의 이름을 표현하는 매개변수를 받습니다.

PHP 매직 메소드 __unset()은 언제 호출됩니까?

권장: "PHP 비디오 튜토리얼"

속성 오버로드: 존재하지 않거나 권한이 부족한 속성에 액세스할 때 속성 오버로딩이라고 하는 일련의 매직 메소드가 트리거될 수 있습니다.

__unset ()는 접근할 수 없는 속성을 파괴하기 위해 unset() 함수를 호출할 때 호출되며, 속성의 이름을 나타내는 매개변수를 받습니다.

<?php

    //属性重载
    class Person{
        //属性
        public $name;
        private $age;

        //构造方法
        public function __construct($name,$age) {
            $this->name = $name;
            $this->age  = $age;
        }

        //增加__unset方法,没有返回值
        public function __unset($name){
            $allow = array(&#39;age&#39;);

            //判断
            if(in_array($name,$allow)){
            //如果允许删除,就帮助其删除
                unset($this->$name);
            }
        }
    }
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;

    //实例化
    $person = new Person(&#39;方智&#39;,19);

    var_dump($person);
    //删除属性
    //unset($person->name);                    //公有属性可以直接被unset掉
    //var_dump($person);

    //unset私有属性
    unset($person->age);
    var_dump($person);

    unset($person->tail);

더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 소개를 방문하세요! !

위 내용은 PHP 매직 메소드 __unset()은 언제 호출됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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