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

WBOY
풀어 주다: 2016-10-22 00:14:29
원래의
974명이 탐색했습니다.

<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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!