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 相关文章推荐
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
Jan 29 PHP
php 无限极分类
Mar 27 PHP
用PHP实现读取和编写XML DOM代码
Apr 07 PHP
web目录下不应该存在多余的程序(安全考虑)
May 09 PHP
PHP+MySQL投票系统的设计和实现分享
Sep 23 PHP
浅析PHP中Collection 类的设计
Jun 21 PHP
探讨:array2xml和xml2array以及xml与array的互相转化
Jun 24 PHP
php堆排序(heapsort)练习
Nov 13 PHP
PHP base64编码后解码乱码的解决办法
Jun 19 PHP
php实现多城市切换特效
Aug 09 PHP
php版微信公众平台接口开发之智能回复开发教程
Sep 22 PHP
PHP在linux上执行外部命令的方法
Feb 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
GD输出汉字的函数的分析
2006/10/09 PHP
PHP+DBM的同学录程序(5)
2006/10/09 PHP
理解php原理的opcodes(操作码)
2010/10/26 PHP
PHP中文件缓存转内存缓存的方法
2011/12/06 PHP
对象失去焦点时自己动提交数据的实现代码
2012/11/06 PHP
php json转换成数组形式代码分享
2014/11/10 PHP
PHP常用工具类大全附全部代码下载
2015/12/07 PHP
变量在 PHP7 内部的实现(二)
2015/12/21 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
2019/05/06 PHP
JavaScript 高级篇之闭包、模拟类,继承(五)
2012/04/07 Javascript
图片上传插件jquery.uploadify详解
2013/11/15 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
2014/07/14 Javascript
XML、HTML、CSS与JS的区别整理
2016/02/18 Javascript
JS验证逗号隔开可以是中文字母数字
2016/04/22 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
2016/07/09 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
Node.js中 __dirname 的使用介绍
2017/06/19 Javascript
layui递归实现动态左侧菜单
2019/07/26 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
Python实现获取系统临时目录及临时文件的方法示例
2019/06/26 Python
python nmap实现端口扫描器教程
2020/05/28 Python
Python tkinter三种布局实例详解
2020/01/06 Python
Python使用os.listdir和os.walk获取文件路径
2020/05/21 Python
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
台湾生鲜宅配:大口市集
2017/10/14 全球购物
军校制空专业毕业生自我鉴定
2013/11/16 职场文书
外语专业毕业生个人的自荐信
2013/11/19 职场文书
大学毕业感言
2014/01/10 职场文书
人事档案接收函
2014/01/12 职场文书
幼儿园运动会口号
2014/06/07 职场文书
个人授权委托书范本格式
2014/10/12 职场文书
学校开除通知书
2015/04/25 职场文书
单独二胎证明
2015/06/24 职场文书
八年级地理课件资料及考点知识分享
2019/08/30 职场文书
「魔法少女伊莉雅」美游粘土人开订
2022/03/21 日漫