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中使用cookie来保存用户登录信息的实现代码
Mar 08 PHP
ThinkPHP使用心得分享-分页类Page的用法
May 15 PHP
PHP在网页中动态生成PDF文件详细教程
Jul 05 PHP
php+Mysqli利用事务处理转账问题实例
Feb 11 PHP
PHP使用Pthread实现的多线程操作实例
Nov 14 PHP
PHP实现的DES加密解密实例代码
Apr 06 PHP
详解php实现页面静态化原理
Jun 21 PHP
PHP应用跨时区功能的实现方法
Mar 21 PHP
PHP实现的抓取小说网站内容功能示例
Jun 27 PHP
使用laravel根据用户类型来显示或隐藏字段
Oct 17 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
Mar 30 PHP
PHP数组array类常见操作示例
May 15 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 VS ASP
2006/10/09 PHP
isset和empty的区别
2007/01/15 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
2017/02/15 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
2020/04/07 PHP
基于javascript实现页面加载loading效果
2020/09/15 Javascript
JavaScript实现图片自动加载的瀑布流效果
2016/04/11 Javascript
引用jquery框架后出错的解决方法
2016/08/09 Javascript
jquery css实现邮箱自动补全
2016/11/14 Javascript
Javascript使用uploadify来实现多文件上传
2016/11/16 Javascript
js实现右键菜单功能
2016/11/28 Javascript
JS中使用gulp实现压缩文件及浏览器热加载功能
2017/07/12 Javascript
bootstrap3中container与container_fluid外层容器的区别讲解
2017/12/04 Javascript
Vue组件中slot的用法
2018/01/30 Javascript
Angular使用操作事件指令ng-click传多个参数示例
2018/03/27 Javascript
vue内置指令详解
2018/04/03 Javascript
微信小程序开发技巧汇总
2019/07/15 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
Python实现给文件添加内容及得到文件信息的方法
2015/05/28 Python
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
2015/10/13 Python
使用python对文件中的数值进行累加的实例
2018/11/28 Python
python获取时间及时间格式转换问题实例代码详解
2018/12/06 Python
Python Datetime模块和Calendar模块用法实例分析
2019/04/15 Python
python线程定时器Timer实现原理解析
2019/11/30 Python
python实现图像全景拼接
2020/03/27 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
香港时装购物网站:ZALORA香港
2017/04/23 全球购物
介绍一些UNIX常用简单命令
2014/11/11 面试题
大学生职业规划论文
2014/01/11 职场文书
护士医德医风自我评价
2014/09/15 职场文书
九寨沟导游词
2015/02/02 职场文书
集结号观后感
2015/06/08 职场文书
教师外出学习心得体会
2016/01/18 职场文书
小学语文的各类谚语(70首)
2019/08/15 职场文书
导游词之山西关帝庙
2019/11/01 职场文书