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


    运行结果:

  • 相关阅读:
    linux ipsec
    inotify+rsync
    多实例tomcat
    Http和Nginx反代至Tomcat(LNMT、LAMT)
    cisco ipsec
    ansible基础
    Qt 汉字乱码
    Model/View
    面对焦虑
    QT中QWidget、QDialog及QMainWindow的区别
  • 原文地址:https://www.cnblogs.com/qianzf/p/7650244.html
Copyright © 2011-2022 走看看