この記事では、PHP Callable にコールバックの型を強制的に指定する方法を主に紹介します。これは非常に優れており、必要な方は参考にしてください。
メソッドがパラメータとしてコールバック メソッドを受け取る必要がある場合は、次のように書くことができます
<?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 サイトの他の関連記事を参照してください。