[面向对象] 魔术方法 (__set, __get, __unset, __isset)

__set, __get,__isset, __unset 是面向对象里用来友操作的魔术方法.  先看看使用方法

echo $类->属性;  //取不存在属性或私有保护属性时,  以下方法被调用

public __get($属性名) {
  echo $属性名;
}


$类->属性 = 值  //对不存在属性或私有保护属性时, 以下方法被调用

public __set($属性名, $值) {
  echo $属性名, $值;
}


if (isset($类->属性)) { echo "属性不存在或无权"; }  //判断不存在或私有保护属性时, 以下方法被调用

public __isset($属性名) {
  echo "你在判断".$属性名."是否存在";
  return true; //我可以强行告诉你, 属性是存在的
}


unset($类->属性);   //删除不存在属性或私有保护属性时, 以下方法被调用

public __unset($属性名) {
  echo "你想删除".$属性名."是一个不存在或无权的属性";
}

这几个魔法方法都有一个共性, 就是"属性"不存在或私有保护的属性   才调用魔法方法.


值得注意的是, if (isset($类->$属性名)) { ... }   __isset是可以有返回值的, 你可以强行返回true或false



刚看完燕十八的教程,  自己做个笔记.  也希望能帮到你

转载于:https://www.cnblogs.com/edk24/p/9582265.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值