mysql - 请教关于PHP方法传入参数的问题及依赖注入的适用场景?

WBOY
Freigeben: 2016-10-22 00:14:29
Original
965 Leute haben es durchsucht

<code class="php">$new  = new controllers\Order\NewOrder();
$new->setForm(new OrderFormData());
$new->sayForm();</code>
Nach dem Login kopieren
Nach dem Login kopieren
<code class="php">private $form;
public function setForm(\OrderFormData $example){
   $this->form = $example;
}
public function sayForm(){
    echo $this->form->say();
}
</code>
Nach dem Login kopieren
Nach dem Login kopieren

小弟最近在学习依赖注入,不太明白上面代码中 传入的值具体代表什么意思,
(OrderFormData $example)这个是个类的值 ,它代表什么呀,可否随便写呢,还有这种写法有什么要求吗?感想诸位大神

回复内容:

<code class="php">$new  = new controllers\Order\NewOrder();
$new->setForm(new OrderFormData());
$new->sayForm();</code>
Nach dem Login kopieren
Nach dem Login kopieren
<code class="php">private $form;
public function setForm(\OrderFormData $example){
   $this->form = $example;
}
public function sayForm(){
    echo $this->form->say();
}
</code>
Nach dem Login kopieren
Nach dem Login kopieren

小弟最近在学习依赖注入,不太明白上面代码中 传入的值具体代表什么意思,
(OrderFormData $example)这个是个类的值 ,它代表什么呀,可否随便写呢,还有这种写法有什么要求吗?感想诸位大神

这种写法叫type hint, 就是setForm方法声明, 我的第一个参数必须是OrderFormData的实例. 不然不给传. 写了type hint之后, 反射类扫描方法参数的时候, 就会自动帮你new OrderFormData

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!