zoukankan      html  css  js  c++  java
  • 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;
    

      

  • 相关阅读:
    gcc数据对齐之: howto 2.
    gcc数据对齐之: howto 1.
    gcc数据结构对齐之:why.
    linux tricks 之 BUILD_BUG_ON_ZERO.
    linux tricks 之 FIELD_SIZEOF.
    linux tricks 之 container_of.
    linux tricks 之 bitmap分析.
    linux tricks 之 roundup.
    Windows之svn问题
    Embeded linux之地址映射
  • 原文地址:https://www.cnblogs.com/objectboy/p/5053368.html
Copyright © 2011-2022 走看看