PHP面向对象__set(赋值方法)

//类Ren里面的变量都是私有的,子类$r里面直接取是取不到的,正常给变量赋值的方法为$r->__set("age",20);,但是可以直接写成$r->age = 20;,原因就是$r->age = 20;默认找了Ren里面的__set方法,通过该方法赋值。
//__set方法特殊在可以自动调用,在给成员变量赋值的时候自动调用function __set($n,$v),把age传给$n,把20传给$v。
class Ren {
     private $name; 
    private $sex; 
    private $age;
    
    function __construct($n) { 
        $this->sex = $n; 
    } 

    function __set($n,$v){//可以给成员变量赋值,括号里面有两个参数,第一个参数是成员变量的名称,第二个是成员变量的值。   
        $this->$n = $v; 
    }
 } 
$r = new Ren("男"); //$r->__set("age",20);//按照这种写法还是会比较复杂,每一个都需要写名字。按照下列写法写。 
$r->age = 20;//可以这样写来给age赋值。 
var_dump($r);
 
 

 

posted @ 2018-05-09 17:28  Strive-count  阅读(528)  评论(0编辑  收藏  举报