php 面向对象编程中 __set,__get方法的应用

PHP piniu 792浏览 0评论

面向对象编程是一种抽象的编程技术,在php中本人就关于:__set和__get方法的总结,希望对php编程朋友们有所帮助,以代码实例给朋友们介绍:

<?php
    
class Person{
    //下面是人的成员属性, 都是封装的私有成员
        private $name; //人的名字
        private $sex; //人的性别
        private $age; //人的年龄
 
    //__get()方法用来获取私有属性
        private function __get($property_name)
        {
            echo "在直接获取私有属性值的时候,自动调用了这个__get()方法<br>";
            if(isset($this->$property_name))
            {
                return($this->$property_name);
            }else
            {
                return(NULL);
            }
        }
 
    //__set()方法用来设置私有属性
        private function __set($property_name, $value)
        {
            echo "在直接设置私有属性值的时候,自动调用了这个__set()方法为私有属性赋值<br>";
            $this->$property_name = $value;
        }
 
}
 
    $p1=new Person();
    //直接为私有属性赋值的操作, 会自动调用__set()方法进行赋值
    $p1->name="小东";
    $p1->sex="男";
    $p1->age=23;
    //直接获取私有属性的值, 会自动调用__get()方法,返回成员属性的值
    echo "姓名:".$p1->name."<br>";
    echo "性别:".$p1->sex."<br>";
    echo "年龄:".$p1->age."<br>";
 

运行上面的代码后,输出的结果是:

在直接设置私有属性值的时候,自动调用了这个__set()方法为私有属性赋值
在直接设置私有属性值的时候,自动调用了这个__set()方法为私有属性赋值
在直接设置私有属性值的时候,自动调用了这个__set()方法为私有属性赋值
在直接获取私有属性值的时候,自动调用了这个__get()方法
姓名:小东
在直接获取私有属性值的时候,自动调用了这个__get()方法
性别:男
在直接获取私有属性值的时候,自动调用了这个__get()方法
年龄:23

通过上面的代码和结果,朋友们应该会清楚地了解:__set和__get方法的应用了。


发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • * 昵称:
  • * 邮箱: