メソッドがパラメータとしてコールバック メソッドを受け入れる必要がある場合は、次のように記述できます
<?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: dosth() に渡される引数 1 は呼び出し可能である必要があります
プログラムは内部処理を実行できません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 サイトに注目してください。