>백엔드 개발 >PHP 튜토리얼 >mysql - PHP 메소드에 전달되는 매개변수와 종속성 주입에 적용 가능한 시나리오에 대해 알려주십시오.

mysql - PHP 메소드에 전달되는 매개변수와 종속성 주입에 적용 가능한 시나리오에 대해 알려주십시오.

WBOY
WBOY원래의
2016-10-22 00:14:291038검색

<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)이것은 클래스 값을 의미하는 것으로 간단하게 작성할 수 있습니까? ? 그리고 이 작성 방법에 대한 요구 사항이 있나요? 모든 위대한 신들에 대한 나의 생각

이러한 작성 방식을 setForm 메소드 선언이라고 합니다. 첫 번째 매개변수는 OrderFormData의 인스턴스여야 합니다. 그렇지 않으면 유형 힌트를 작성한 후 리플렉션이 전달되지 않습니다. 클래스가 메소드 매개변수를 스캔하면 자동으로 도움이 됩니다new OrderFormData

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.