首先看看PHP官方
文档的解释:
__set()
运行时数据写入到人迹罕至的性质。
__get()是用于访问
属性中读取数据。
你怎么用
中文翻译它
访问:,是很难达到无与伦比的;难以理解。
代码中有事实:
复制代码代码如下所示:
< PHP
error_reporting(e_all);
班级学生{
私营的;
私人$ 0;
公开发行;
公共$ D = 0;
这里可以由私人/受
保护的公众来代替
私有
函数__get($name){
返回123;
}
这里是私人的/可以由受保护的公众取代的。
私有函数__set($name,美元价值){
这是set函数;
}
}
美元=新的斯图();
var_dump($ S -> a); / /输出:123
var_dump($ S -> b); / /输出:123
var_dump($ S>C); / /输出:空
var_dump($ S -> D); / /输出:0
var_dump($ S -> E); / /输出:123
$ = 3;输出:这是set函数
$ = C = 3;无输出
$ = f=3;输出:这是set函数
>
结果分析:
如果没有__get方法,对var_dump执行($ S ->一)var_dump($ S -> b)会有致命的
错误 如果没有__get方法,对var_dump执行($ S -> E)将有一个通知,说明属性$ E没有定义。
总结:
1。的__get()
方法被调用时,数据是从一个无法访问的属性中读取
2。的__set()方法被调用时,一个无法访问的属性值分配
三.困难包括:(1)私人性质,(2)未初始化的属性
4。__isset()()__unset相似