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与javascript对多项选择的处理
Oct 09 PHP
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
Aug 26 PHP
比较详细PHP生成静态页面教程
Jan 10 PHP
深入eAccelerator与memcached的区别详解
Jun 06 PHP
PHP将两个关联数组合并函数提高函数效率
Mar 18 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
Jun 23 PHP
php使用pack处理二进制文件的方法
Jul 03 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
Sep 09 PHP
PHP弱类型的安全问题详细总结
Sep 25 PHP
PHP对象链式操作实现原理分析
Oct 09 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
May 05 PHP
Yii框架模拟组件调用注入示例
Nov 11 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
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
php获取数组元素中头一个数组元素值的实现方法
2014/12/20 PHP
php随机显示指定文件夹下图片的方法
2015/07/13 PHP
thinkPHP数据库增删改查操作方法实例详解
2016/12/06 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
2006/09/22 Javascript
Javascript中arguments对象详解
2014/10/22 Javascript
jquery的总体架构分析及实现示例详解
2014/11/08 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
js带点自动图片轮播幻灯片特效代码分享
2015/09/07 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
Javascript实现图片轮播效果(二)图片序列节点的控制实现
2016/02/17 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
JSONP和批量操作功能的实现方法
2016/08/21 Javascript
jQuery中的deferred使用方法
2017/03/27 jQuery
基于JavaScript实现的插入排序算法分析
2017/04/14 Javascript
jQuery使用JSONP实现跨域获取数据的三种方法详解
2017/05/04 jQuery
浅谈vue首屏加载优化
2018/06/28 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
2018/11/30 Javascript
在vant中使用时间选择器和popup弹出层的操作
2020/11/04 Javascript
python开发之tkinter实现图形随鼠标移动的方法
2015/11/11 Python
DataFrame 将某列数据转为数组的方法
2018/04/13 Python
Python爬虫包BeautifulSoup实例(三)
2018/06/17 Python
python hook监听事件详解
2018/10/25 Python
python设置环境变量的作用和实例
2019/07/09 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
2019/07/26 Python
Django+Celery实现动态配置定时任务的方法示例
2020/05/26 Python
CSS3 圆角效果
2009/07/15 HTML / CSS
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
印度网上购物首选目的地:Flipkart
2016/08/01 全球购物
德国内衣、泳装和睡衣网上商店:Bigsize Dessous
2018/07/09 全球购物
运动鞋、街头服装、手表和手袋的实时市场:StockX
2020/11/25 全球购物
境外导游求职信
2014/02/27 职场文书
新学期国旗下演讲稿
2014/05/08 职场文书
终止解除劳动合同证明书
2015/06/17 职场文书
小学大队长竞选稿
2015/11/20 职场文书