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静态绑定在后期的开发中使用的频率还是蛮高的