Rumah > pembangunan bahagian belakang > tutorial php > mysql - 请教关于PHP方法传入参数的问题及依赖注入的适用场景?

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-10-22 00:14:29
asal
1070 orang telah melayarinya

$new  = new controllers\Order\NewOrder();
$new->setForm(new OrderFormData());
$new->sayForm();
Salin selepas log masuk
Salin selepas log masuk
private $form;
public function setForm(\OrderFormData $example){
   $this->form = $example;
}
public function sayForm(){
    echo $this->form->say();
}
Salin selepas log masuk
Salin selepas log masuk

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

回复内容:

$new  = new controllers\Order\NewOrder();
$new->setForm(new OrderFormData());
$new->sayForm();
Salin selepas log masuk
Salin selepas log masuk
private $form;
public function setForm(\OrderFormData $example){
   $this->form = $example;
}
public function sayForm(){
    echo $this->form->say();
}
Salin selepas log masuk
Salin selepas log masuk

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

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

Label berkaitan:
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Isu terkini
Masalah Vim di bawah Ubuntu
daripada 1970-01-01 08:00:00
0
0
0
konfigurasi vim
daripada 1970-01-01 08:00:00
0
0
0
muat semula fail vim
daripada 1970-01-01 08:00:00
0
0
0
Mencari pemalam vim
daripada 1970-01-01 08:00:00
0
0
0
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan