PHP의 __invoke는 단일 책임으로 클래스를 유지할 수 있는 매우 유용한 기능입니다.
예
class Invokable { public function __invoke() { echo '已被 invoke'; } }
$invokable = new Invokable(); $invokable();
Invokeable 클래스를 다른 클래스에 삽입할 수 있습니다.
class Foo { protected $invokable; public function __construct(Invokable $invokable) { $this->invokable = $invokable; } public function callInvokable() { $this->invokable(); } }
$this->invokable()을 사용하여 활성화합니다. Invokable 클래스에서 클래스는 invokable이라는 메서드를 찾으므로 다음 작업은 오류를 보고합니다
$foo = new Foo($invokable); $foo->callInvokable(); // Call to undefined method Foo::invokable()
다음은 올바른 호출 메서드입니다
public function callInvokable() { // 优先推荐 call_user_func($this->invokable); // 可选 $this->invokable->__invoke(); // 可选 ($this->invokable)(); }
더 많은 PHP 관련 지식을 보려면 PHP Tutorial을 방문하세요!
위 내용은 PHP 팁: 인스턴스에서 Invoke 유형 클래스 호출의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!