时时商务社区

标题: 详解php的魔术方法__get()和__set()使用介绍 [打印本页]

作者: qz234    时间: 2018-2-14 08:27

            先看看php官方文档的解释:
__set() is run when writing data to inaccessible properties.
__get() is utilized for reading data from inaccessible properties.
究竟用中文怎么翻译呢?
inaccessible :n. 难达到;难接近;无法理解。
有代码有真相:
[U]复制代码[/U] 代码如下:
a); //output: 123
var_dump($s->b); //output: 123
var_dump($s->c); //output: null
var_dump($s->d); //output: 0
var_dump($s->e); //output: 123
$s->a = 3; //output: This is set function
$s->c = 3; //no output
$s->f = 3; //output: This is set function
?>

结果分析:
如果没有__get方法,执行 var_dump($s->a) var_dump($s->b) 会有致命的错误
如果没有__get方法,执行 var_dump($s->e) 会有一个notice,提示没有定义属性 $e
总结:
1. 从一个难以访问的属性读取数据的时候 __get() 方法被调用
2. 向一个难以访问的属性赋值的时候 __set() 方法被调用
3. 难以访问包括:(1)私有属性,(2)没有初始化的属性
4. __isset() __unset() 也类似
            
            
您可能感兴趣的文章:
  • php 魔术方法使用说明
  • 基于PHP5魔术常量与魔术方法的详解
  • 深入PHP5中的魔术方法详解
  • php中的常用魔术方法总结
  • php面向对象中的魔术方法中文说明
  • PHP类中的魔术方法(Magic Method)简明总结
  • PHP 5.3新增魔术方法__invoke概述
  • php常见的魔术方法详解
  • PHP中的常见魔术方法功能作用及用法实例
  • PHP中常用的魔术方法
            




    欢迎光临 时时商务社区 (http://bbs.4435.cn/) Powered by Discuz! X3.2