看代码:<?php
class stu{
private $a;
private $b = 0;
public $c;
public $d = 0;
public function __get($name) {
return 123;
}
public function __set($name, $value) {
echo "This is set function";
}
}
$s = new stu();
var_dump($s->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
?>当你取值时,如果类中不存在这个属性或者是private的,对这个属性取值时,$object->e,就会自动调用__get()方法.当对这个属性赋值时就调用__set()方法。
本文介绍PHP中魔术方法__get和__set的功能与应用实例。当尝试访问对象未定义或私有的属性时,__get方法会被自动调用;而__set则在给这些属性赋值时触发。通过具体代码示例展示了这两种方法如何工作。
290

被折叠的 条评论
为什么被折叠?



