이 글은 주로 PHP 프로그래밍의 중요한 개념인 PHP 반사 메커니즘의 사용법을 소개합니다. 필요한 친구들이 참고할 수 있습니다.
이 글은 예제를 통해 PHP 반사 메커니즘의 사용법을 설명하고 참고용으로 모든 사람과 공유됩니다. . 구체적인 메소드는 다음과 같습니다.
데모 샘플 코드는 다음과 같습니다.
<?php class ClassOne { function callClassOne() { print "In Class One"; } } class ClassOneDelegator { private $targets; function construct() { $this->target[] = new ClassOne(); } function call($name, $args) { foreach ($this->target as $obj) { $r = new ReflectionClass($obj); if ($method = $r->getMethod($name)) { if ($method->isPublic() && !$method->isAbstract()) { return $method->invoke($obj, $args); } } } } } $obj = new ClassOneDelegator(); $obj->callClassOne(); ?>
출력 결과:
In Class One
그의 메소드는 ClassOne 클래스가 아닌 ClassOneDelegator 프록시 클래스를 통해 구현된 것을 확인할 수 있습니다.
마찬가지로 다음 코드도 실행할 수 있습니다.
<?php class ClassOne { function callClassOne() { print "In Class One"; } } class ClassOneDelegator { private $targets; function addObject($obj) { $this->target[] = $obj; } function call($name, $args) { foreach ($this->target as $obj) { $r = new ReflectionClass($obj); if ($method = $r->getMethod($name)) { if ($method->isPublic() && !$method->isAbstract()) { return $method->invoke($obj, $args); } } } } } $obj = new ClassOneDelegator(); $obj->addObject(new ClassOne()); $obj->callClassOne(); ?>
위 내용은 PHP 반사 메커니즘 코드 적용 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!