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 相关文章推荐
PHP 字符串 小常识
Jun 05 PHP
php程序效率优化的一些策略小结
Jul 17 PHP
探讨多键值cookie(php中cookie存取数组)的详解
Jun 06 PHP
解析php中的fopen()函数用打开文件模式说明
Jun 20 PHP
phpnow php探针环境检测代码
Nov 04 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
Oct 10 PHP
php正则修正符用法实例详解
Dec 29 PHP
PHP数字前补0的自带函数sprintf 和number_format的用法(详解)
Feb 06 PHP
PHP实现微信提现功能
Sep 30 PHP
php+ajax 文件上传代码实例
Mar 18 PHP
php的扩展写法总结
May 14 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
Apr 06 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
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
php5.5中类级别的常量使用介绍
2013/10/02 PHP
CodeIgniter生成网站sitemap地图的方法
2013/11/13 PHP
php调用c接口无错版介绍
2014/03/11 PHP
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
终于解决了IE8不支持数组的indexOf方法
2013/04/03 Javascript
JS取文本框中最小值的简单实例
2013/11/29 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
在JavaScript中使用JSON数据
2016/02/15 Javascript
jquery获取点击控件的绝对位置简单实例
2016/10/13 Javascript
原JS实现banner图的常用功能
2017/06/12 Javascript
详解Node.js一行命令上传本地文件到服务器
2019/04/22 Javascript
vue的keep-alive中使用EventBus的方法
2019/04/23 Javascript
解决layui laydate 时间控件一闪而过的问题
2019/09/28 Javascript
微信小程序使用 vant Dialog组件的正确方式
2020/02/21 Javascript
js数组中去除重复值的几种方法
2020/08/03 Javascript
python写xml文件的操作实例
2014/10/05 Python
Python functools模块学习总结
2015/05/09 Python
Python实现把json格式转换成文本或sql文件
2015/07/10 Python
python merge、concat合并数据集的实例讲解
2018/04/12 Python
树莓派用python中的OpenCV输出USB摄像头画面
2019/06/22 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
2019/09/15 Python
django框架中间件原理与用法详解
2019/12/10 Python
python怎么调用自己的函数
2020/07/01 Python
python 从list中随机取值的方法
2020/11/16 Python
HTML5 视频播放(video),JavaScript控制视频的实例代码
2018/10/08 HTML / CSS
医疗保健专业人士购物网站:Scrubs & Beyond
2017/02/08 全球购物
《云雀的心愿》教学反思
2014/02/25 职场文书
教师评语大全
2014/04/28 职场文书
城管综合整治方案
2014/05/01 职场文书
分公司总经理岗位职责
2014/07/30 职场文书
带你学习MySQL执行计划
2021/05/31 MySQL
利用python做数据拟合详情
2021/11/17 Python
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android