浅谈PHP拦截器之__set()与__get()的理解与使用方法


Posted in PHP onOctober 18, 2016

“一般来说,总是把类的属性定义为private,这更符合现实的逻辑。

但是,对属性的读取和赋值操作是非常频繁的,因此在PHP5中,预定义了两个函数“__get()”和“__set()”来获取和赋值其属性,以及检查属性的“__isset()”和删除属性的方法“__unset()”。

我们为每个属性做了设置和获取的方法,在PHP5中给我们提供了专门为属性设置值和获取值的方法,“__set()”和“__get()”这两个方法,这两个方法不是默认存在的,而是我们手工添加到类里面去的,像构造方法(__construct())一样,类里面添加了才会存在,可以按下面的方式来添加这两个方法,当然也可以按个人的风格来添加:“

<?php
//拦截器的使用
class Computer{
private $name;
private $price;
private $cpu;
private $clocked;

//拦截器之赋值
public function __set($key,$value){
//那么:$key=name $value="联想" 则有: $this->name="联想"
return $this->$key=$value;
}

//拦截器之取值
public function __get($key){
if (isset($key)){
//那么: $key=name 则$this->name 所以自然就return了"联想"
return $this->$key;
}else {
return NULL;
}
}
}
//正是因为的拦截器存在,才能如此用
$computer=new Computer();
$computer->name="联想";
$computer->price=5600;
$computer->cpu="八核";
$computer->clocked="1600hz";

echo $computer->name;
echo $computer->price;
echo $computer->cpu;
echo $computer->clocked;

以上就是小编为大家带来的浅谈PHP拦截器之__set()与__get()的理解与使用方法全部内容了,希望大家多多支持三水点靠木~

PHP 相关文章推荐
PHP nl2br函数 将换行字符转成 &amp;lt;br&amp;gt;
Aug 21 PHP
PHP函数学习之PHP函数点评
Jul 05 PHP
PHP中CURL方法curl_setopt()函数的参数分享
Jan 19 PHP
Smarty模板学习笔记之Smarty简介
May 20 PHP
PHP制作图形验证码代码分享
Oct 23 PHP
Laravel实现用户注册和登录
Jan 23 PHP
php面向对象中static静态属性和静态方法的调用
Feb 08 PHP
php将字符串全部转换成大写或者小写的方法
Mar 17 PHP
4种PHP异步执行的常用方式
Dec 24 PHP
浅谈PHP链表数据结构(单链表)
Jun 08 PHP
php中Ioc(控制反转)和Di(依赖注入)
May 07 PHP
Laravel定时任务的每秒执行代码
Oct 22 PHP
利用PHP绘图函数实现简单验证码功能的方法
Oct 18 #PHP
Yii针对添加行的增删改查操作示例
Oct 18 #PHP
Yii遍历行下每列数据的方法
Oct 17 #PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
Oct 17 #PHP
php实现跨域提交form表单的方法【2种方法】
Oct 17 #PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
Oct 17 #PHP
详解PHP原生DOM对象操作XML的方法
Oct 17 #PHP
You might like
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
php 多关键字 高亮显示实现代码
2012/04/23 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
2019/05/09 PHP
DOM相关内容速查手册
2007/02/07 Javascript
JavaScript判断两种格式的输入日期的正确性的代码
2007/03/25 Javascript
jQuery筛选器children()案例详解(图文)
2013/02/17 Javascript
Jquery通过Ajax访问XML数据的小例子
2013/11/18 Javascript
jQuery插件bgStretcher.js实现全屏背景特效
2015/06/05 Javascript
JAVA四种基本排序方法实例总结
2015/07/24 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
2015/09/06 Javascript
jQuery采用连缀写法实现的折叠菜单效果
2015/09/18 Javascript
基于Javascript实现弹出页面效果
2016/01/01 Javascript
JS中递归函数
2016/06/17 Javascript
js控制台输出的方法(详解)
2016/11/26 Javascript
JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)
2017/01/06 Javascript
基于webpack-hot-middleware热加载相关错误的解决方法
2018/02/22 Javascript
vue实现图片上传预览功能
2019/12/23 Javascript
python dict remove数组删除(del,pop)
2013/03/24 Python
python获取android设备的GPS信息脚本分享
2015/03/06 Python
Python探索之自定义实现线程池
2017/10/27 Python
Python编程实现使用线性回归预测数据
2017/12/07 Python
python批量创建指定名称的文件夹
2019/03/21 Python
python实现猜拳游戏
2020/03/04 Python
Django用数据库表反向生成models类知识点详解
2020/03/25 Python
Django用户身份验证完成示例代码
2020/04/03 Python
用Python 执行cmd命令
2020/12/18 Python
使用CSS变量实现炫酷惊人的悬浮效果
2019/04/26 HTML / CSS
美国婚礼礼品网站:MyWeddingFavors
2018/09/26 全球购物
英国领先的在线高尔夫设备零售商:Golfgeardirect
2020/12/11 全球购物
求职者应聘的自我评价
2013/10/16 职场文书
大学生表扬信范文
2014/01/09 职场文书
年级组长自我鉴定
2014/02/22 职场文书
优秀党支部书记事迹材料
2014/05/29 职场文书
小学老师对学生的评语
2014/12/29 职场文书
如何Python使用re模块实现okenizer
2022/04/30 Python
服务器SVN搭建图文安装过程
2022/06/21 Servers