メソッドがパラメータとしてコールバック メソッドを受け入れる必要がある場合は、次のように記述できます
<?php function dosth($callback){ call_user_func($callback); } function callback(){ echo 'do sth callback'; } dosth('callback'); ?>
出力:
do sth callback
しかし、コールバック メソッドを呼び出せるかどうかは確認できないため、コールバック メソッドを呼び出せるかどうかを確認するには、多くの追加作業を行う必要があります。
コールバック メソッドが呼び出し可能かどうかを判断するより良い方法はありますか?
callable を使用してパラメータを強制的にコールバック型にすることができます。これにより、コールバック メソッドが呼び出し可能であることが保証されます。
たとえば、コールバック メソッドは存在しないメソッドです
<?php function dosth(callable $callback){ call_user_func($callback); } dosth('abc'); ?>
実行後のエラー メッセージは次のとおりです: TypeError: Argument 1 Passed to dosth() should be callable
プログラムは dosth の内部処理を実行できません。パラメータ タイプから、保護するためにすでに検査および処理されています。
そして呼び出し可能なものが削除された場合
<?php function dosth($callback){ call_user_func($callback); } dosth('abc'); ?>
実行後、警告が表示されます: 警告: call_user_func() はパラメータ 1 が有効なコールバックであることを期待しています、関数 'abc' が見つからないか、または無効な関数名です
dosthの内部処理までプログラムを実行することができますが、このコールバックメソッドが呼び出せるかどうかを確認するために多くの手間がかかります。
したがって、メソッドのパラメータがコールバックメソッドである場合は、コールバックタイプとして強制的に指定するために callable を追加する必要があります。これにより、呼び出しエラーが減り、プログラムの品質が向上します。
上記は、PHP Callable でコールバックの型を強制的に指定するためにエディターが紹介した方法です。ご質問があれば、メッセージを残してください。エディターが返信します。間に合うようにあなたに。また、PHP 中国語 Web サイトをサポートしていただきありがとうございます。
コールバックの型を強制的に指定する PHP Callable のメソッドに関連するその他の記事については、PHP 中国語 Web サイトに注目してください。