• php魔术方法


    <?php
    
    header("Content-type:text/html;charset=utf-8");
    
    class Person {
    
        //下面是人的成员属性,都是封装的私有成员
        private $name;      //人的名子
        private $sex;       //人的性别
        private $age;       //人的年龄
    
        //__get()方法用来获取私有属性  
        public function __get($property_name) {
            echo "在直接获取私有属性值的时候,自动调用了这个__get()方法<br>";
            if (isset($this->$property_name)) {
                return($this->$property_name);
            } else {
                return(NULL);
            }
        }
    
        //__set()方法用来设置私有属性
        public function __set($property_name, $value) {
            echo "在直接设置私有属性值的时候,自动调用了这个__set()方法为私有属性赋值<br>";
            $this->$property_name = $value;
        }
    
        //__call调用未定义的方法执行
        public function __call($name, $arguments) {
            echo "你所调用的函数:$name(参数:<br />";
            var_dump($arguments);
            echo ")不存在!";
        }
    
        //__callStatic 当调用的静态方法不存在或权限不足时,会自动调用__callStatic方法。
        public function __callStatic($name, $arguments) {
            echo "你所调用的静态函数:$name(参数:<br />";
            var_dump($arguments);
            echo ")不存在!";
        } 
    }
    
    $p1 = new Person();
    //直接为私有属性赋值的操作,会自动调用__set()方法进行赋值
    $p1->name = "张三";
    $p1->sex = "男";
    $p1->age = 20;
    

      

  • 相关阅读:
    Maven项目 Struts和Spring整合
    Android Binder机制
    Android屏幕适配
    AIDL初识
    Android插件化初识
    OOM解决方案
    ANR
    Android性能优化
    Android内存泄露总结
    Glide源码解析
  • 原文地址:https://www.cnblogs.com/objectboy/p/5053368.html
Copyright © 2020-2023  润新知