php魔术方法

本文深入讲解PHP中的魔术方法,包括__construct(), __destruct()等,探讨它们如何在特定条件下自动调用,以及为何被称为‘魔术’。通过示例代码展示魔术方法在类实例化和销毁过程中的应用。

今天儿面试,问我魔术方法是啥子,我母鸡

回家看了看,发现

就是php默认的,制定的几个方法,会在特殊情况下启动,和JAVA的构造函数一样

魔术方法有:__construct(), __destruct (), __call(), __callStatic(),__get(), __set(), __isset(), __unset (), __sleep(), __wakeup(), __toString(), __set_state,() __clone() __autoload()

如__construct()方法,就是在这个类NEW出来的时候运行的

__destruct ()方法,就是在这个类销毁时候出现时候运行的

,栗子(来自百度百科'魔术方法'):


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

<?php

/**

 * 清晰的认识__construct() __destruct

 */

class Example {

    public static $link;

    //在类实例化的时候自动加载__construct这个方法

    public function __construct($localhost$username$password$db) {

        self::$link = mysql_connect($localhost$username$password);

        if (mysql_errno()) {

            die('错误:' . mysql_error());

        }

        mysql_set_charset('utf8');

        mysql_select_db($db);

    

    /**

     * 通过__construct链接好数据库然后执行sql语句......

     */  

    //当类需要被删除或者销毁这个类的时候自动加载__destruct这个方法

    public function __destruct() {

        echo '<pre>';

        var_dump(self::$link);

        mysql_close(self::$link);

        var_dump(self::$link);

    }

}

$mysql new Example('localhost''root''root''test');

例3输出结果为:

resource(2) of type (mysql link)

resource(2) of type (Unknown)


为什么这个玩意要叫魔术方法鸭?

很魔术嘛?

就叫做预制事件不好吗?

 

点名批评.jpg

(PHP的错,我没有错,理不直气也壮.jpg)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值