abstract:<?php //依賴注入練習(xí); class Girl { public function work(){ return '會(huì)做飯'; } public function hobby(){ return '愛購(gòu)物'; } } class Boy { publ
<?php //依賴注入練習(xí); class Girl { public function work(){ return '會(huì)做飯'; } public function hobby(){ return '愛購(gòu)物'; } } class Boy { public function getInfo(){ $girl = new Girl; return '我的女朋友'.$girl->work(); } } $boy = new Boy; echo $boy->getInfo(); echo '<hr>'; //依賴注入:用構(gòu)造方法; // class Boy1 // { // //根據(jù)類Boy,因?yàn)轭惱锩孀詈貌灰猲ew 類,所以用這個(gè)方法代替; // private $girl = null; //容器; // public function __construct(Girl $girl){ // $this->girl = $girl; // } // public function getInfo(){ // return '我的女朋友'.$this->girl->work(); // } // } // $girl = new Girl; // $boy1 = new Boy1($girl); // echo $boy1->getInfo(); // echo '<br>'; // 依賴注入普通方法: class Boy2 { // Girl必須是一個(gè)實(shí)例; $girl.這個(gè)相當(dāng)于參數(shù)傳入;Girl這個(gè)對(duì)照著類名; public function getInfo(Girl $girl){ //getinfo里面的參數(shù)等于 $girl = new Girl; return '我的女朋友'.$girl->hobby(); } } $like= new Girl; //變量名可以隨時(shí)改動(dòng) $boy2 = new Boy2; echo $boy2->getInfo($like); //變量名跟隨實(shí)例化類的變量; echo '<br>';
依賴注入:在類外部實(shí)例化,然后當(dāng)做參數(shù)傳遞到類里面;因?yàn)楫?dāng)做是變量傳入,所以比較靈活,維護(hù)方便;
$girl.這個(gè)相當(dāng)于參數(shù)傳入;可以改變;Girl這個(gè)對(duì)照著類名,不允許隨便改動(dòng);
Correcting teacher:天蓬老師Correction time:2019-05-24 13:40:21
Teacher's summary:現(xiàn)在有很多框架,通過依賴注入的特征, 實(shí)現(xiàn)類的實(shí)例自動(dòng)化, 非常的實(shí)用