メソッドがコールバックメソッドは、パラメータとして受け入れる必要がある場合は、我々は書くことができます
<?PHP 関数dosth($コールバック){ call_user_func($コールバック)。 } 関数コールバック(){ エコー「STHコールバックを行います」; } dosth(' コールバック' ); ?>
出力:
STHコールバックを行います
しかし、我々はあなたがコールバックメソッドを呼び出すことができるならば、コールバックメソッドを呼び出すことができるかどうかを確認するために余分な作業の多くを行うことが必要であるかわかりません。
コールバックメソッドの呼び出し可能かどうかを判断するためには何より良い方法はありますか?
あなたは、コールバックメソッドが呼び出される必要があります確保することができるように、我々は、コールバックタイプのパラメータを強制するために呼び出し可能に使用することができます。
例えば、コールバックメソッドは、メソッドが存在しない場合であります
<?PHP 関数dosth(呼び出し可能$コールバック){ call_user_func($コールバック)。 } dosth(' ABC ' ); ?>
実行後、エラー:例外TypeErrorは:呼び出し可能な引数1でなければなりません dosthに渡された()
プログラムの保護効果は、内部処理dosthに実行することはできません、パラメータの型からチェック処理、プレーで行われています。
呼び出し可能な取り外した場合
<?PHP 関数dosth($コールバック){ call_user_func($コールバック)。 } dosth(' ABC ' ); ?>
执行后、提示警告:警告:call_user_func()が有効なコールバック関数であることを1パラメータを期待「ABC」が見つかり、または無効な関数名ではありません
プログラムは、あなたがコールバックメソッドを呼び出すことができるかどうかを確認するために余分な作業の多くを行う必要があるので、内部dosthを処理するために実行することができます。
メソッドパラメータがある場合したがって、呼び出し可能なコールバック・タイプを追加する必要があり、コールバックメソッドは、このように誤差を低減し、プログラム呼び出しの質を改善する、必須として指定されています。