PHP类的封装

通过__get()__set()访问私有属性

PHP5中预定义了__get()__set()方法,其中:

  • __get()方法用于获取私有成员属性的属性值
  • __set()方法用于为私有成员属性赋值

这两个方法获取私有属性和设置私有属性时都是自动调用的。

<?php
header("Content-type:text/html;charset=utf-8");

//page:108

class Person{
    private $name;
    private $age;

    //定义__get()方法用于获取Person的属性
    public function __get($property_name){
        echo "自动调用__get()方法获取属性值<br>";
        if(isset($this->$property_name)){
            return($this->$property_name);
        }else{
            return(NULL);
        }
    }

    //定义__set方法用于设置Person的属性
    public function __set($property_name, $value){
        echo "自动调用__set()方法获取属性值<br>";
        $this->$property_name = $value;
    }
}

$p1 = new Person();
$p1->name = 'Tom';
$p1->age = 10;

echo "姓名:".$p1->name."<br>";
echo "年龄:".$p1->age;

运行结果:

自动调用__set()方法获取属性值
自动调用__set()方法获取属性值
自动调用__get()方法获取属性值
姓名:Tom
自动调用__get()方法获取属性值
年龄:10
posted @ 2019-06-22 15:29  你是真的菜啊  阅读(184)  评论(0编辑  收藏  举报