php版本:php7.3.4
<?php
interface Blog{
public function rt();
}
class FileBlog implements Blog{
public function rt(){
echo "file";
}
}
class DbBlog implements Blog{
public function rt(){
echo "DB";
}
}
class User {
protected $opt;
public function __construct(Blog $b){
$this->opt = $b;
}
public function test(){
$this->opt->rt();
}
}
// 获取User的reflectionClass对象
$reflector = new ReflectionClass(User::class);
// 拿到User的构造函数
$constructor = $reflector->getConstructor();
// 拿到User的构造函数的所有依赖参数
$dependencies = $constructor->getParameters();
// 创建user对象,需要传递参数的
$user = $reflector->newInstanceArgs([new FileBlog()]);
$user ->test();
//file