批改状态:未批改
老师批语:
static:: 在静态集成的上下文环境中,动态的设置方法调用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<?php
class A{
public static function who(){
echo __CLASS__;
}
public static function test(){
//self::who();
static::who(); //静态方法中动态调用
}
}
class B extends A{
public static function who(){
echo __CLASS__;
}
}
//静态继承的上下文之间
B::test();
echo '<br>';
//父类
class Connection{
public static function connect(){
//return static :: config(); 子类继承后调用的会变成子类中的连接参数
return self::config(); //子类继承后调用的仍然是父类中的连接参数
}
public static function config(){
return new PDO('mysql:host=127.0.0.1;dbname=php','root','root');
}
}
//创建连接子类
class Link extends Connection{
public static function config(){
//错误的连接密码
return new PDO('mysql:host=127.0.0.1;dbname=php','root','');
}
}
$pdo = Link::connect();
$staffs = $pdo->query('select * from `staff` limit 5');
foreach($staffs as $staff){
print_r($staff);
echo '<br>';
}
?>
</body>
</html>点击 "运行实例" 按钮查看在线实例

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号