php魔术方法__SET __GET

__SET  设置一个不可访问的属性的时候 调用_set方法

__GET 获取一个不可访问的属性的时候  调用_get 方法

<?php

class stu{
    private $a;
    private $b = 0;
    public $c;
    public $d = 0;
     
    //这里的 private 可以用 protected public 替代
    private function __get($name) {
        return 123;
    }
     
    //这里的 private 也可以用 protected public 替代
    private function __set($name, $value) {
        echo "This is set function";
    }
}
 
$s = new stu();
echo "<pre>";
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
echo "<br>";
$s->c = 3;  //no output
echo "<br>";
$s->f = 3;  //output: This is set function

看结果

原文地址:https://www.cnblogs.com/yhl664123701/p/5788663.html