[资料]PHP中的__set __get使用
PHP中的__set & __get使用
官方说明
$name
, mixed $value
)
$name
)
$name
)
$name
)
在给未定义的变量赋值时,__set() 会被调用。
读取未定义的变量的值时,__get() 会被调用。
当对未定义的变量调用 isset() 或 empty()时,__isset() 会被调用。
当对未定义的变量调用 unset()时,__unset() 会被调用。
参数$name是指要操作的变量名称。__set() 方法的$value 参数指定了$name变量的值。
属性重载只能在对象中进行。在静态方法中,这些魔术方法将不会被调用。所以这些方法都不能被 声明为static。 从PHP 5.3.0起, 将这些魔术方法定义为static会产生一个警告。
Demo1
<?php class Person {function __get( $property ) {$method = "get{$property}";if ( method_exists( $this, $method ) ) {return $this->$method();}}function __isset( $property ) {$method = "get{$property}";return ( method_exists( $this, $method ) );} function getName() {return "Bob";}function getAge() {return 44;} } print "<pre>"; $p = new Person(); if ( isset( $p->name ) ) {print $p->name; } else {print "nope\n"; } print "</pre>"; // output: // Bob ?>
Demo2
<?php class Person {private $_name;private $_age;function __set( $property, $value ) {$method = "set{$property}";if ( method_exists( $this, $method ) ) {return $this->$method( $value );}}function __unset( $property ) {$method = "set{$property}";if ( method_exists( $this, $method ) ) {$this->$method( null );}}function setName( $name ) {$this->_name = $name;if ( ! is_null( $name ) ) {$this->_name = strtoupper($this->_name);}}function setAge( $age ) {$this->_age = $age;} } print "<pre>"; $p = new Person(); $p->name = "bob"; $p->age = 44; print_r( $p ); unset($p->name); print_r( $p ); print "</pre>"; ?>
Output:
Person Object ([_name:Person:private] => BOB[_age:Person:private] => 44 ) Person Object ([_name:Person:private] => [_age:Person:private] => 44 )
[资料]PHP中的__set __get使用相关推荐
- 【独立版】智慧城市同城V4_2.1.4全开源全插件VUE版,修复房产信息组件后台资料编辑中会显示其他平台小区的问题
源码介绍 [独立版]智慧城市同城V4_2.1.4全开源全插件VUE版,修复房产信息组件后台资料编辑中会显示其他平台小区的问题!智慧城市同城是一套专注于多城市生活服务同城技术解决方案,全面覆盖同堿信息. ...
- 隔年增长的题_如何从资料分析中的隔年增长率?
展开全部 行测资料分析中,在解决有间隔时间段的增长问题636f707962616964757a686964616f31333433623133时,使用隔年增长来计算,经常能够让列式更精简,从而提高做题 ...
- 增长量计算n+1原则_国家公务员考试:资料分析中增长量的计算
国家公务员考试之资料分析中增长量的计算 湖北华图 化蒙 2015 年湖北省公务员笔试已经落下帷幕,紧接着 2016 年国家公务员考试即将到来!各 位小伙伴们再也不要重复临时抱佛脚,考试一团糟,差零点几 ...
- 增长量计算n+1原则_国家公务员考试:资料分析中增长量的计算 (1)
- 让每个人平等地提升自我! 1 国家公务员考试之资料分析中增长量的计算 湖北华图 化蒙 2015 年湖北省公务员笔试已经落下帷幕,紧接着 2016 年国家公务员考试即将到来!各 位小伙伴们再也不要重 ...
- 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 ...
- __set __get
当我们试图获取一个不可达属性时(比如private),类会自动调用__get函数. 当试图设置一个不可达属性时(比如private),类会自动调用__set函数,我们一起来看个例子: <?php ...
- 系统分析师-资料总结-中
4 嵌入式系统 4.1 嵌入式系统概论 4.1.1 嵌入式系统的特点 1.系统专用性强 2.软硬件依赖性强 3.系统实时性强 4.处理器专用 5.多种技术紧密结合 6.系统透明性 7.系统资源受限 R ...
- 12x12怎么速算_备考 | 资料分析中的乘法速算怎么做?
资料分析是考生们在学习职测必须要作为重点的一个部分.难度不是特别大,但是技巧性比较强.资料分析其中一个重难点就是计算,而在计算中比较复杂的列式一定包含乘除运算. 对于其中的乘法,考生们往往束手无策,只 ...
最新文章
- python的沙盒环境virtualenv(二)--简单使用
- 根据时间点截取wav文件
- vs2013缺少Mvc 怎么办?
- 大剑无锋之简单说一下聚簇索引和非聚簇索引?【面试推荐】
- 小白的算法初识课堂(part2)--选择排序
- YbOJ-网格序列【拉格朗日插值】
- groovy 2.5.4_Java 7 vs Groovy 2.1性能比较
- spring ldap_Spring 3,Spring Web Services 2和LDAP安全
- CSS3 线性渐变背景的过渡效果
- android计算汇率代码,android studio 开发实例 连接网络获取汇率
- git clone 多个_软件测试知识点 | 测试过程常用的Git命令
- Thread 线程基础之-线程池ThreadPool一
- 台式计算机英特尔时间同步,我电脑时间没法与Inter同步,?
- 误把电脑desktop文件删了怎么处理
- 计算机组装方案及分析,计算机组装与维护
- 哈萨克斯坦大型“零元购”抓捕现场
- ubuntu下搭建pptp服务器
- Android图片加载框架 Glide 4 的用法
- EFR32--如何在EFR32BG22透传中添加AT指令控制
- JavaApplet编程技巧
热门文章
- 某些微型计算机使用Pentium,2010四川省计算机等级考试二级理论考试试题及答案...
- 你怎么理解程序设计和c语言,【答题】C语言程序设计问题与解释实验
- java字符串拼接_Java 8中字符串拼接新姿势:StringJoiner
- ubuntu display
- Top 10 Digital Transformation Trends For 2020
- 《天天数学》连载07:一月七日
- Java Web学习笔记03:JSP元素
- 正确使用招呼语、称呼语_5
- XP计算机调整对比度,Win7系统调节显示器屏幕对比度的两种方法【图文】
- 2017.3.29 越狱 思考记录