欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-05-28 09:17:39
...
__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

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

以上就介绍了 [面向对象] 魔术方法 __set, __get, __unset, __isset,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。