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写的MySQL数据库用户认证系统代码
Mar 22 PHP
PHP 页面编码声明方法详解(header或meta)
Mar 12 PHP
php实现文件下载代码分享
Aug 19 PHP
PHP实现微信网页授权开发教程
Jan 19 PHP
php 在字符串指定位置插入新字符的简单实现
Jun 28 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
Oct 18 PHP
PHP请求远程地址设置超时时间的解决方法
Oct 29 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
Feb 17 PHP
php mysql数据库操作类(实例讲解)
Aug 06 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 PHP
java解析json方法总结
May 16 PHP
WordPress伪静态规则设置代码实例
Dec 10 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中利用XML技术构造远程服务(下)
2006/10/09 PHP
php字符串截取问题
2006/11/28 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
2017/09/29 PHP
实例分析PHP将字符串转换成数字的方法
2019/01/27 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
2007/03/10 Javascript
jquery 仿QQ校友的DIV模拟窗口效果源码
2010/03/24 Javascript
javascript定时保存表单数据的代码
2011/03/17 Javascript
js简单实现让文本框内容逐个字的显示出来
2013/10/22 Javascript
javascript函数重载解决方案分享
2014/02/19 Javascript
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
自己动手手写jQuery插件总结
2015/01/20 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
js图片轮播手动切换效果
2015/11/10 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
2017/03/07 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
详解swipe使用及竖屏页面滚动方法
2018/06/28 Javascript
Vue表单之v-model绑定下拉列表功能
2019/05/14 Javascript
微信小程序换肤功能实现代码(思路详解)
2020/08/25 Javascript
[01:15:36]加油刀塔第二期网络版
2014/08/09 DOTA
Python中dictionary items()系列函数的用法实例
2014/08/21 Python
分享一个常用的Python模拟登陆类
2015/03/29 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
2017/04/11 Python
在Django的View中使用asyncio的方法
2019/07/12 Python
python实现的多任务版udp聊天器功能案例
2019/11/13 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
html5指南-5.使用web storage存储键值对的数据
2013/01/07 HTML / CSS
GNC健安喜美国官网:美国第一营养品牌
2016/07/22 全球购物
平安家庭示范户事迹
2014/06/02 职场文书
优秀研究生主要事迹
2014/06/03 职场文书
小学生十佳少年事迹材料
2014/08/20 职场文书
广告设计专业毕业生自我鉴定
2014/09/27 职场文书
四风问题自我剖析材料
2014/10/07 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
刑事和解协议书范本
2014/11/19 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书