• PHP中的__get()和__set()方法获取设置私有属性


    在类的封装中,获取属性可以自定义getXXX()和setXXX()方法,当一个类中有多个属性时,使用这种方式就会很麻烦。为此PHP5中预定义了__get()和__set()方法,其中__get()方法用于获取私有成员属性值,__set()方法用于为私有成员属性值赋值,这两个方法获取或设置私有属性值时都是自动调用的。接下来通过一个案例来演示这两个方法的使用。

    1. <?php  
    2.     class Person   
    3.     {  
    4.         private $name;  
    5.         private $age;  
    6.   
    7.         public function __get($property_name)  
    8.         {  
    9.             echo "自动调用__get()方法获取属性值<br>";  
    10.             if(isset($this->$property_name))  
    11.             {  
    12.                 return ($this->$property_name);  
    13.             }  
    14.             else  
    15.             {  
    16.                 return (NULL);  
    17.             }  
    18.           
    19.         }  
    20.         public function __set($property_name,$value)  
    21.         {  
    22.             echo "自动调用__set()方法设置属性值<br>";  
    23.             $this->$property_name=$value;  
    24.         }     
    25.     }  
    26.     $p1 = new Person;  
    27.     $p1->name = "张三";  
    28.     $p1->age = 10;  
    29.     echo "姓名:".$p1->name."<br>";  
    30.     echo "年龄:".$p1->age."<br>";  
    31. ?>  


    运行结果:

  • 相关阅读:
    ElasticSearch6学习(1)-安装Elasticsearch
    Ubuntu 18.04 安装java8
    windows10 php7安装mongodb 扩展
    https加密解密过程详解
    Beanstalkd,zeromq,rabbitmq的区别
    PHP中的++和--
    win10 git bash 闪退
    谈下WebSocket介绍,与Socket的区别
    Bridge桥接模式(结构型模式)
    Apater适配器模式(结构型模式)
  • 原文地址:https://www.cnblogs.com/qianzf/p/7650244.html
Copyright © 2020-2023  润新知