mysql - 請教關於PHP方法傳入參數的問題及依賴注入的適用場景?

WBOY
發布: 2016-10-22 00:14:29
原創
1003 人瀏覽過

<code class="php">$new  = new controllers\Order\NewOrder();
$new->setForm(new OrderFormData());
$new->sayForm();</code>
登入後複製
登入後複製
<code class="php">private $form;
public function setForm(\OrderFormData $example){
   $this->form = $example;
}
public function sayForm(){
    echo $this->form->say();
}
</code>
登入後複製
登入後複製

小弟最近在學習依賴注入,不太明白上面程式碼中傳入的值具體代表什麼意思,
(OrderFormData $example)這個是個類的值,它代表什麼呀,可否隨便寫呢,還有這種寫法有什麼要求嗎?感想諸位大神

回覆內容:

<code class="php">$new  = new controllers\Order\NewOrder();
$new->setForm(new OrderFormData());
$new->sayForm();</code>
登入後複製
登入後複製
<code class="php">private $form;
public function setForm(\OrderFormData $example){
   $this->form = $example;
}
public function sayForm(){
    echo $this->form->say();
}
</code>
登入後複製
登入後複製

小弟最近在學習依賴注入,不太明白上面程式碼中傳入的值具體代表什麼意思,
(OrderFormData $example)這個是個類的值,它代表什麼呀,可否隨便寫呢,還有這種寫法有什麼要求嗎?感想諸位大神

這種寫法叫做type hint, 就是setForm方法聲明, 我的第一個參數必須是OrderFormData的實例. 不然不給傳. 寫了type hint之後, 反射類掃描方法參數的時候, 就會自動幫你new OrderFormData

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!