Reflection은 소스코드를 보지 않고서는 이해할 수 없는 중요성을 가지고 있습니다. 이 글을 꼭 읽어보세요
I. GO에 대해 배워보셨는지 모르겠습니다. 솔직히 말해서, Kaka는 Go의 반사 메커니즘을 보고 조금 혼란스러워했습니다.
하지만 나중에 PHP의 리플렉션을 보고 나면 go의 리플렉션에 대해 어느 정도 깊이 있게 이해할 수 있을 뿐만 아니라 PHP의 리플렉션에 대해서도 더 잘 이해할 수 있게 되었습니다.
Reflection 개념은 PHP5.0에서 도입되었습니다. 현재 사용되는 프레임워크 중 thinkphp와 laravel은 모두 Reflection을 사용하여 종속성 주입을 구현합니다.
리플렉션의 이해: 사실은 루트에서 루트가 아닌 다른 것을 얻는 것입니다. 프로그래밍에서는 클래스만 알면 이 클래스의 모든 속성과 메서드를 알 수 있습니다.
Case
이것은 클래스의 모든 메서드와 속성을 가져오는 간단한 구현 사례입니다. 아래 그림의 인쇄 결과가 TestReflection과 일치하는지 확인할 수 있습니다.
이것도 측면에서 문제가 됩니다. 즉, 노출되어서는 안되는 일부 정보가 노출된다는 것입니다.
리플렉션에서 제공하는 더 많은 인터페이스가 있습니다. 다음은 일반적으로 사용되는 몇 가지 인터페이스이며 나머지는 프레임워크 소스 코드에서 구문 분석됩니다.
리플렉션을 사용하여 클래스의 메서드 실행
인쇄된 결과는 클릭입니다
리플렉션을 사용하여 클래스의 매개변수가 있는 메서드를 실행합니다.
리플렉션 사용 클래스에서 매개변수 없이 메소드 실행
이 리플렉션 인터페이스는 기본 개발에서는 자주 사용되지 않기 때문에 다른 메소드를 직접 시도해 볼 수도 있습니다.
이제 성찰을 이해했으니 성찰이 무엇을 할 수 있을까요? 문서를 자동으로 생성하는 기능 포인트가 있습니다.
여기서 반영 내용을 간략히 살펴보겠습니다. 인터페이스 사용에 대해 더 자세히 알고 싶으시면 공식 웹사이트에 접속하여 해당 인터페이스 정보를 확인하실 수 있습니다.
반성을 이해한 후 이제 비즈니스에 착수할 시간이며 공식적으로 컨테이너 링크에 들어가야 합니다. 위의 기초를 놓는 것만으로 다음 컨테이너를 더 잘 이해할 수 있습니다.
배움의 끈기, 블로그의 끈기, 공유의 끈기는 카카가 창립 이래 늘 지켜온 신념입니다. 거대 인터넷에 올라온 카카의 글이 조금이나마 도움이 되었으면 좋겠습니다. 저는 카카입니다. 다음에 만나요.
위 내용은 ThinkPHP 컨테이너의 반사 메커니즘의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!