PHP __set(),__get(),__isset(),__unset()四个方法的应用

__set()、__get()、__isset()、__unset() 这四个方法都是我们添加到对象里面的,在需要时自动调用的,来完成在对象外部对对象内部私有属性的操作。

<?php
// __get()方法用来获取私有属性
function __get($property_name) {
    if (isset($this->$property_name)) {
        return ($this->$property_name);
    } else {
        return (NULL);
    }
}

// __set()方法用来设置私有属性
function __set($property_name, $value) {
    $this->$property_name = $value;
}

private function __isset($nm) {
    echo "当在类外部使用isset()函数测定私有成员$nm时,自动调用<br />";
    return isset($this->$nm);
}

private function __unset($nm) {
    echo "当在类外部使用unset()函数来删除私有成员时自动调用的<br />";
    unset($this->$nm);
}

最后补充说明:
1、__set(), __get() 是专门为类的私有属性(private、protected)设立的,对于类的公开(public)属性,外面是可以直接访问与设置的(如:$p1->name),即不走__set(),__get()函数的!!!
2、在PHP5.3及以后,上述魔术方法(__get(),__set(),__isset(),__unset() 等)提倡是 public 类型的,并且不是 static 方法,否则会给出警告信息!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值