__set __get
当我们试图获取一个不可达属性时(比如private),类会自动调用__get
函数。
当试图设置一个不可达属性时(比如private),类会自动调用__set
函数,我们一起来看个例子:
<?php class Person{public $name = '周伯通';private $sex = '男';function __get($name){echo '个人信息:'.$name.$this->sex;} } $class = new Person(); echo $class->sex;//个人信息:sex男
<?php class Person{public $name = '周伯通';private $sex = '男';function __set($name, $val){echo '个人信息:'.$name. $val;} } $class = new Person(); $class->sex = '女'; echo $class->sex;
个人信息:sex女 ( ! ) Fatal error: Uncaught Error: Cannot access private property Person::$sex in G:\web\gitlearn\set.php on line 11 ( ! ) Error: Cannot access private property Person::$sex in G:\web\gitlearn\set.php on line 11
<?php class Person{public $name = '周伯通';private $sex = '男';function __set($name, $val){//echo '个人信息:'.$this->$name = $val;$this->$name = $val; //注意 这里是$name,是要设置访问的变量名,如果大家用$this->name,会看到本例会输出的是 男 }function getSex(){echo $this->sex; //获取新的属性 } } $class = new Person(); $class->sex = '女'; echo $class->getSex();// 输出 女
转载于:https://www.cnblogs.com/hanmengya/p/10944851.html
__set __get相关推荐
- [资料]PHP中的__set __get使用
PHP中的__set & __get使用 官方说明 public void __set ( string $name , mixed $value ) public mixed __get ( ...
- php魔术方法__SET __GET
__SET 设置一个不可访问的属性的时候 调用_set方法 __GET 获取一个不可访问的属性的时候 调用_get 方法 <?phpclass stu{private $a;private ...
- PHP 魔术方法__set() __get() 方法详解
__set() is run when writing data to inaccessible properties. __get() is utilized for reading data fr ...
- 提高php编程效率的小结
1.如果将类的方法定义为:static,它的执行效率将提升为近4倍 2.php中数组的元素调用,使用关联数组优于索引数组 3.使用each快于print. 4.尽量使用foreach()替代for() ...
- PHP面向对象编程(imooc)代码合集(四)
class10 多态 多态简单说就是用不同的类去实现同一个接口的方法,以实现不同类自己的方法 <?php date_default_timezone_set("PRC"); ...
- LAMP 关键数据集锦技术选项参考
LAMP 关键数据集锦技术选项参考 源自日积月累自己的其他人的经验总结 负载均衡 LVS 工作在四层,内核态,性能极高,有VIP功能,配合 keepalived 做有效的 心跳检查和负载均衡安装配置 ...
- mysql是面向对象的语言吗_php一种面向对象的语言,那么什么是面向对象呢?
php一种面向对象的语言,那么什么是面向对象呢? 传统的面向过程的编程思想: 相信很多人第一次接触编程都是c语言,c语言就是非常典型的面向过程的编程语言,将要实现的功能描述为一个从开始到结束的连续的& ...
- PHP几种常见魔术方法与魔术变量解析
PHP几种常见魔术方法与魔术变量解析 先不多说,直接上代码,如下: 1 class Demo 2 { 3 private $str = 'str'; 4 5 //实例化时自动加载function 6 ...
- 魔术方法php,PHP中常用的魔术方法
我们在PHP中经常用到魔术方法,像构造方法,析构方法等等魔术变量,下面总结一下一些常用的魔术变量: __construct(),__destruct(),__clone(),__autoload(), ...
最新文章
- chartcontrol饼状图属性设置_温故而知新,ggplot2 饼图的几点笔记
- 【转载】2009年春晚节目单提前揭晓
- js事件监听器用法实例详解
- 计算机控制系统开卷试卷,13自动化计算机控制技术考试A卷
- boost Filesystem Library Version 3关于文件的一些函数封装 fsync()函数
- python(33)多进程和多线程的区别
- 详解:JVM内存调优参数
- android五子棋设计模板,基于android的五子棋游戏设计
- 计算机中记录的意思,电脑日志看不懂,怎么才能知道日志记录的是什么意思啊?...
- jQuery Mobile中可折叠块collapsed的data-*选项
- warning: control reaches end of non-void function:错误解决
- B - Vicious Keyboard
- 基本技能 100316
- 地图坐标转换(84坐标、百度坐标、国测局坐标)
- matlab2017b和2018a,Matlab 2018a 比2017b有哪些改进?
- AI人工智能毕业设计课题:动物识别系统
- 英文、数字和汉字、日文的字符判断 英文占1个字符,中文汉字占2个字符 el-form表单验证规则
- Week of 2.7
- CMMI入门 - 通用实践的实施GP 2.8-GP 2.10
- 学术论文插图要求简介
热门文章
- 博客园首页新随笔联系管理订阅订阅随笔- 610 文章- 0 评论- 83 阅读- 144万 Calendar时间获取天,周,月,季度,年度时间段
- linux -bash: ./startup.sh: /bin/sh^M: 坏的解释器: 没有那个文件或目录
- git解决 “fatal: Could not read from remote repository.“
- Kotlin入门(32)网络接口访问
- android 构建者设计模式,Android中的设计模式之构建者模式
- display: flex的兼容性写法
- Django通过pycharm创建后,如何登录admin后台?
- 重磅开源:TN文本分析语言
- Alipay Direct Bankpay 支付宝网银支付 (For OpenCart 2.x)
- EasyUI之Form load函数IE8下设置Radio或Checkbox的BUG