静态绑定技术

Original 2019-01-20 16:36:01 266
abstract:后期静态绑定用static::functionname()  或者static::$name来绑定,当子类继承父类,而用子类调用父类方法里面的父类方法或者属性时,就需要用到后期静态绑定.当子类继承父类,而子类又重写了父类的方法,方法里面调用到自身属性或者方法时,需要在方法里面用static::来调用,这样在后期的话,可以调用父类自身的属性或方法,也可以调用子类自身的属性或方法,不会导致逻

后期静态绑定用static::functionname()  或者static::$name来绑定,当子类继承父类,而用子类调用父类方法里面的父类方法或者属性时,就需要用到后期静态绑定.当子类继承父类,而子类又重写了父类的方法,方法里面调用到自身属性或者方法时,需要在方法里面用static::来调用,这样在后期的话,可以调用父类自身的属性或方法,也可以调用子类自身的属性或方法,不会导致逻辑处理错误.


<?php

 //后期静态绑定

class Test

{

    public static $pdo = null;

    //连接数据库

    public static function connect()

    {

        self::$pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');

    }

    public static function query()

    {

        $stmt = self::$pdo->prepare("SELECT `name`,`salary` FROM `staff` LIMIT 3");

        $stmt->execute();

        return $stmt->fetchAll(PDO::FETCH_ASSOC);

    }

    public static function select()

    {

        self::connect();

        return static::query();

    }

}




//继承

class Test2 extends Test

{

    public static function query()

    {

        $stmt = self::$pdo->prepare("SELECT `name` AS `姓名`,`email` AS `邮箱` FROM `user` LIMIT 3");

        $stmt->execute();

        return $stmt->fetchAll(PDO::FETCH_ASSOC);

    }

}

echo '<pre>';

print_r(Test2::select());


Correcting teacher:韦小宝Correction time:2019-01-20 17:50:24
Teacher's summary:写的很不错 static静态绑定在后期的开发中使用的频率还是蛮高的

Release Notes

Popular Entries