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. ?>  


    运行结果:

  • 相关阅读:
    常用内建函数
    函数作用域
    异常处理语句
    迭代器---待延申扩展
    流程控制语句
    字典
    集合
    数据类型的可变与不可变
    Openstack keystone组件详解
    云计算openstack介绍(001)
  • 原文地址:https://www.cnblogs.com/qianzf/p/7650244.html
Copyright © 2011-2022 走看看