博客
关于我
php -- 魔术方法 之 获取属性:__get()
阅读量:794 次
发布时间:2023-02-27

本文共 1138 字,大约阅读时间需要 3 分钟。

属性重载:当访问一个不存在或者权限不够的属性时,能够触发一系列的魔术方法,就叫做属性重载。__get():获取不存在或者权限不够的属性时会自动触发。
';    //PHP属性重载    class Person{        //属性        public $name;        protected $money;        private $age;        //构造方法        public function __construct($name,$money,$age){            $this->name = $name;            $this->age  = $age;            $this->money  = $money;        }        //增加一个魔术方法__get        //__get方法必须要一个参数,需要访问的属性的名字        public function __get($name){            //var_dump($name);            $allow = array('money','age');            //让用户访问            //如果用户访问的是money和tail,那么就帮助用户去访问,如果是其他返回FALSE            if(in_array($name,$allow)){                //在 allow 中搜索 name,如果没有,返回false,如果有返回true                return $this->name;            }else{                return false;            }        }    }    //实例化    $person = new Person('马浩洋',6000,28);    //访问个人信息    echo $person->name;          //可以,访问公有属性    //echo $person->age;        //不可以,age是私有属性,且Person类没有__get方法    //Person类增加__get方法之后    echo $person->age;   //访问一个不存在的    var_dump($person->tail);

意义:

1、增加代码容错性

2、控制用户访问

转载于:https://www.cnblogs.com/hf8051/p/4654032.html

你可能感兴趣的文章
opencv保存图片路径包含中文乱码解决方案
查看>>
opencv图像分割2-GMM
查看>>
OpenCV(1)读写图像
查看>>
OpenCV:概念、历史、应用场景示例、核心模块、安装配置
查看>>
Openlayers高级交互(10/20):绘制矩形,截取对应部分的地图并保存
查看>>
Openlayers高级交互(19/20): 地图上点击某处,列表中显示对应位置
查看>>
openlayers:圆孔相机根据卫星经度、纬度、高度、半径比例推算绘制地面的拍摄的区域
查看>>
OpenMCU(一):STM32F407 FreeRTOS移植
查看>>
OpenMMLab | S4模型详解:应对长序列建模的有效方法
查看>>
OpenMMLab | 【全网首发】Llama 3 微调项目实践与教程(XTuner 版)
查看>>
OpenMMLab | 面向多样应用需求,书生·浦语2.5开源超轻量、高性能多种参数版本
查看>>
OpenPPL PPQ量化(4):计算图的切分和调度 源码剖析
查看>>
OpenPPL PPQ量化(5):执行引擎 源码剖析
查看>>
Openresty框架入门详解
查看>>
OpenResty(2):OpenResty开发环境搭建
查看>>
openshift搭建Istio企业级实战
查看>>
Openstack 之 网络设置静态IP地址
查看>>
OpenStack 网络服务Neutron详解
查看>>
Openstack(两控制节点+四计算节点)-1
查看>>
Openstack企业级云计算实战第二、三期培训即将开始
查看>>