PHP魔术方法__GET、__SET使用实例


Posted in PHP onNovember 25, 2014

__get()

- 读取不可访问属性的值时,__get() 会被调用。

__set()

- 在给不可访问属性赋值时,__set() 会被调用。

<?php
/**

 * 清晰的认识__get() __set()

 */

class Example {

    

    //公有的属性

    public $public = 'pub' ;

    //受保护的 - 子类中该属性可用

    protected $protected = 'pro';

    //私有的 - 只能此类使用此属性

    private $private = 'pri';

    

    //当访问对象中的属性不存在或者非公有属性的时候自动加载__get()方法

    public function __get($name){

        return '调用__get()方法:'.$name;

    }

    

    //当给对象的一个属性赋值的时候如果该属性不存在或者是非公有属性则自动加载__set()方法

    public function __set($name,$value){

        echo "\nname:".$name.',value:'.$value."\n";

    }

}
$example = new Example;

echo '<pre>';

echo $example->public."\n";

echo $example->protected."\n";

echo $example->private."\n";

echo $example->other."\n";

echo '<hr>';

$example->public = 'lic';   //这个赋值成功所有没有显示

$example->protected = 'tec';

$example->private = 'vat';

$example->other = 'er';

echo '<br/>';

echo '打印 public 属性:'.$example->public;

结果如下:

pub

调用__get()方法:protected

调用__get()方法:private

调用__get()方法:other
name:protected,value:tec
name:private,value:vat
name:other,value:er
打印 public 属性:lic
PHP 相关文章推荐
自己前几天写的无限分类类
Feb 14 PHP
那些年一起学习的PHP(一)
Mar 21 PHP
PHP字符串的编码问题的详细介绍
Apr 27 PHP
PHP实现的汉字拼音转换和公历农历转换类及使用示例
Jul 01 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
Jun 10 PHP
WordPress中用于检索模版的相关PHP函数使用解析
Dec 15 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
May 05 PHP
PHP时间函数使用详解
Mar 21 PHP
PHP中上传文件打印错误错误类型分析
Apr 14 PHP
关于php开启错误提示的总结
Sep 24 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
Oct 10 PHP
Laravel框架源码解析之模型Model原理与用法解析
May 14 PHP
php字符串截取函数用法分析
Nov 25 #PHP
浅谈ThinkPHP的URL重写
Nov 25 #PHP
ThinkPHP独立分组使用的注意事项
Nov 25 #PHP
php中in_array函数用法探究
Nov 25 #PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
Nov 25 #PHP
ThinkPHP提交表单时默认自动转义的解决方法
Nov 25 #PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
Nov 25 #PHP
You might like
基于php伪静态的实现详细介绍
2013/04/28 PHP
析构函数与php的垃圾回收机制详解
2013/10/28 PHP
PHP 设计模式系列之 specification规格模式
2016/01/10 PHP
跨域表单提交状态的变相判断代码
2009/11/12 Javascript
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
基于jQuery的获得各种控件Value的方法
2010/11/19 Javascript
DOM和XMLHttpRequest对象的属性和方法整理
2012/01/04 Javascript
JQuery标签页效果实例详解
2015/12/24 Javascript
点击按钮出现60秒倒计时的简单js代码(推荐)
2016/06/07 Javascript
PHP捕捉异常中断的方法
2016/10/24 Javascript
Bootstrap常用组件学习(整理)
2017/03/24 Javascript
vue 项目中使用Loading组件的示例代码
2018/08/31 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
ES6学习笔记之let与const用法实例分析
2020/01/22 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
JS字符串和数组如何实现相互转化
2020/07/02 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
python调用windows api锁定计算机示例
2014/04/17 Python
Python从单元素字典中获取key和value的实例
2018/12/31 Python
Python函数中不定长参数的写法
2019/02/13 Python
django中ORM模型常用的字段的使用方法
2019/03/05 Python
利用rest framework搭建Django API过程解析
2019/08/31 Python
Python关于反射的实例代码分享
2020/02/20 Python
Python 之 Json序列化嵌套类方式
2020/02/27 Python
Python的in,is和id函数代码实例
2020/04/18 Python
销售行业个人求职自荐信
2013/09/25 职场文书
中医专业应届生求职信
2013/11/17 职场文书
诚信承诺书模板
2014/05/26 职场文书
2014年采购部工作总结
2014/11/20 职场文书
鼋头渚导游词
2015/02/05 职场文书
仓库保管员岗位职责
2015/02/09 职场文书
介绍信格式样本
2015/05/05 职场文书
入党积极分子党小组意见
2015/06/02 职场文书
SpringBoot2零基础到精通之异常处理与web原生组件注入
2022/03/22 Java/Android