<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
了