(好想插入一首音乐)PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用。这里进行详细介绍,感兴趣的小伙伴们可以参考一下。
特征:
1. __两个下划线开始
2. 不需要显示的调用,由某些条件下触发(类似数据库中的隐式触发器)
接下来我们开始正文喽咳咳,排排坐好,知识点来了!!!
1. __construct( ) 构造函数
php中构造方法是对象创建完成后第一个被对象自动调用的方法。在每个类中都有一个构造方法,如果没有显示地声明它,那么类中都会默认存在一个没有参数且内容为空的构造方法。
通常构造方法被用来执行一些有用的初始化任务,如对成员属性在创建对象时赋予初始值。
例子:
$Person3 = new Person("李四","男",25);
echo $Person3->say(); //输出:我叫:李四,性别:男,年龄:25
2. __destruct( ) 析构函数
通过上面的讲解,现在我们已经知道了什么叫构造方法。那么与构造方法对应的就是析构方法。析构方法允许在销毁一个类之前执行的一些操作或完成一些功能,比如说关闭文件、释放结果集等。
析造方法的声明格式与构造方法 __construct() 比较类似,也是以两个下划线开始的方法 __destruct() ,这种析构方法名称也是固定的。一般来说,析构方法在PHP中并不是很常用,它属类中可选择的一部分,通常用来完成一些在对象销毁前的清理任务。
例子:
我觉得我还可以再抢救一下,我的名字叫小明
3. __get( ) 获得一个类的成员变量时调用
在 php 面向对象编程中,类的成员属性被设定为 private 后,如果我们试图在外面调用它则会出现“不能访问某个私有属性”的错误。那么为了解决这个问题,我们可以使用魔术方法 __get()。
在程序运行过程中,在类外部获取 访问类中私有 受保护的属性的时候才会被调用
例子:
姓名:小明
年龄:50
4. __set( ) 设置一个类的成员变量时调用
__set( $property, $value )` 方法用来设置私有属性, 给一个未定义的属性赋值时,此方法会被触发,传递的参数是被设置的属性名和值。
例子:
我叫小红,今年16岁了
5. __isset( ) 当对不可访问属性调用isset( )
在看这个方法之前我们看一下isset()函数的应用,isset()是测定变量是否设定用的函数,传入一个变量作为参数,如果传入的变量存在则传回true,否则传回false。
在类外 用isset方法来判断类中私有/受保护的属性存在时候
例子:
1 // public 可以 isset() 当在类外部使用isset()函数测定私有成员name时,自动调用 // __isset() 内 第一个echo 1 // __isset() 第二个echo 在类外部使用isset()函数测定私有成员age时,自动调用 // __isset() 内 第一个echo 1 // __isset() 内第二个echo
6. __unset( ) 当对不可访问属性调用unset( )时被调用
看这个方法之前呢,我们也先来看一下 unset() 函数,unset()这个函数的作用是删除指定的变量且传回true,参数为要删除的变量。在类外对类中的私有/受保护的属性销毁的时候 会自动执行__unset 魔术方法
例子:
你们有没有学会呀!当在类外部使用unset()函数来删除私有成员时自动调用的
大家点点关注和喜欢好不好;
我不管,我要关注
网友评论