首頁  >  文章  >  後端開發  >  mysql - 請教關於PHP方法傳入參數的問題及依賴注入的適用場景?

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

WBOY
WBOY原創
2016-10-22 00:14:291009瀏覽

<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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn