两个类有依赖关系的时候使用者通过构造函数参数,方法或属性等方式将具体组件,传给自己 $storage=new Storge();//构造函数注入 class User{ public function __construct($storage){ $this->storage = $storage; } } //方法注入 class User{ public function setSessionStorage($storage){ $this->storage = $storage; } } //属性注入 class User{ public $sessionStorage; } $user->sessionStorage = $storage; 通过构造函数注入适用于必要的依赖,如上例;设值注入适用于可选的依赖,如项目需要一个缓存功能的实现。