面向对象之魔术方法__get()、__set()和__call() 的用法

一、魔术方法
在PHP中,有很多两个下划线开头的方法,如:__construct、__distruct、__clone(注意:这些单词前面都是两个下划线),这些方法被称为魔术方法。如果PHP调用这些方法,首先必须在类中定义,否则PHP不会执行为创建的魔术方法。
注意:魔术方法均用public关键字来修饰。
二、__get和__set方法
2-1、__set方法:
当程序试图写入一个不存在或不可见的成员变量时,PHP就会执行__set方法。
__set方法包含两个参数,(变量的名称和变量的值),两个参数不可以省略。
2-2、__get方法:
当程序调用一个未定义或不可见的成员变量时,通过__get方法来读取变量的值。
__get方法有一个参数,表示要调用的变量名。
例如:在这里插入图片描述
运行结果:
在这里插入图片描述
三、__call方法
__call方法的作用是:当程序试图调用不存在或不可见的成员方法时,PHP会先调用__call方法来存储方法名及其参数。
__call方法包含两个参数,(方法名和方法参数),方法参数是以数组的形式存在的。
例如:
在这里插入图片描述
运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43860260/article/details/85145321