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数据库封装类(附函数说明)
Dec 04 PHP
php二维数组排序与默认自然排序的方法介绍
Apr 27 PHP
如何使用Gitblog和Markdown建自己的博客
Jul 31 PHP
非常全面的php日期时间运算汇总
Nov 04 PHP
php制作的简单验证码识别代码
Jan 26 PHP
PHP Static延迟静态绑定用法分析
Mar 16 PHP
php中foreach结合curl实现多线程的方法分析
Sep 22 PHP
详谈phpAdmin修改密码后拒绝访问的问题
Apr 03 PHP
PHP的PDO事务与自动提交
Jan 24 PHP
PHP explode()函数用法讲解
Feb 15 PHP
PHP中“=&gt;
Mar 01 PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 29 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
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
php 网上商城促销设计实例代码
2012/02/17 PHP
PHP实现下载断点续传的方法
2014/11/12 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
PHP中echo与print区别点整理
2021/03/09 PHP
filemanage功能中用到的common.js
2007/04/08 Javascript
javascript 必知必会之closure
2009/09/21 Javascript
5款Javascript颜色选择器
2009/10/25 Javascript
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
纯JS实现根据CSS的class选择DOM
2014/03/22 Javascript
jQuery+AJAX实现无刷新下拉加载更多
2015/07/03 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
AngularJS控制器之间的通信方式详解
2016/11/03 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
js 事件的传播机制(实例讲解)
2017/07/20 Javascript
jquery实现下拉菜单的手风琴效果
2017/07/23 jQuery
详解如何在项目中使用jest测试react native组件
2018/02/09 Javascript
react配合antd组件实现的管理系统示例代码
2018/04/24 Javascript
详解Angular中通过$location获取地址栏的参数
2018/08/02 Javascript
微信小程序基础教程之worker线程的使用方法
2019/07/15 Javascript
在Python的web框架中配置app的教程
2015/04/30 Python
Pycharm学习教程(1) 定制外观
2017/05/02 Python
libreoffice python 操作word及excel文档的方法
2019/07/04 Python
Python中filter与lambda的结合使用详解
2019/12/24 Python
Python实现寻找回文数字过程解析
2020/06/09 Python
专门出售各种儿童读物的网站:Put Me In The Story
2016/08/07 全球购物
德国亚洲食品网上商店:asiafoodland.de
2019/12/28 全球购物
教师自荐书
2013/10/08 职场文书
营销与策划专业毕业生求职信
2013/11/01 职场文书
2014年管理人员工作总结
2014/12/01 职场文书
2015年护士节活动总结
2015/02/10 职场文书
全国劳模先进事迹材料(2016精选版)
2016/02/25 职场文书
求职信如何撰写?
2019/05/22 职场文书
幼儿教师三分钟演讲稿
2019/06/21 职场文书
Python pygame实现中国象棋单机版源码
2021/06/20 Python
PostgreSQL逻辑复制解密原理解析
2022/09/23 PostgreSQL