PHP魔术方法

作者: 老三_ | 来源:发表于2017-12-26 20:34 被阅读0次

    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()函数来删除私有成员时自动调用的

    你们有没有学会呀!
                                 大家点点关注和喜欢好不好;
    
    我不管,我要关注

    相关文章

      网友评论

        本文标题:PHP魔术方法

        本文链接:https://www.haomeiwen.com/subject/pzhegxtx.html