https://www.phpxy.com/article/200.html
<?php
interface travelinterface
{
public function __construct($speed, $distance);
public function run();
}
abstarct class travel implements travelinterface
{
protect $speed; //最高时速
protect $distance; //最远路程
public function __construct($speed, $distance)
{
$this->speed = $speed;
$this->distance = $distance;
}
}
class drive extends travel
{
public function run()
{
echo '自驾游';
}
}
class walk extends travel
{
public function run()
{
echo '徒步旅行';
}
}
class human
{
protect $travel;
public function __construct(travel $travel)
{
$this->travel = $travel;
}
// public function __construct()
// {
// $this->travel = new drive(60,1000);
// }
public function traveling()
{
$this->traveling->run();
}
}
$travel = new drive(60, 1000);
$xiaoming = new human();
$xiaoming->traveling();
//配置
$config = [
"travel" => drive::class,
];
$travel = new $config["travel"](60,1000);
$xiaoming = new human($travel);
$xiaoming->traveling();