PHP で関数をコールバックとして使用するにはどうすればよいですか?

王林
リリース: 2024-04-10 17:51:01
オリジナル
886 人が閲覧しました

PHP で関数をコールバックとして使用すると、匿名関数または名前付き関数を使用できます。匿名関数の構文は次のとおりです: $callback = function ($argument) { return $result; }。名前付き関数には名前があり、通常の関数と同様に定義されます。一般的に使用される組み込み関数は、array_map()、array_filter()、usort() などのパラメータとしてコールバックを受け入れます。実際には、コールバック関数を使用してカスタム検証ルールを定義し、電子メール検証コールバックなどの検証関数に渡すことができます: function validateEmail($email) { return filter_var($email, FILTER_VALIDATE_EMAIL); }。

如何在 PHP 中使用函数作为回调?

#PHP で関数をコールバックとして使用する方法

コールバック関数は、別の関数内で呼び出される関数を指します。 PHP では、匿名関数 (クロージャ) または名前付き関数をコールバックとして使用できます。

匿名関数をコールバックとして使用する

匿名関数は、必要に応じて作成できる名前のない関数です。匿名関数を作成するには、次の構文を使用します。

$callback = function ($argument) { return $result; };
ログイン後にコピー

たとえば、数値に 5 を加算するコールバック関数を作成します。

$add5 = function ($num) { return $num + 5; };
ログイン後にコピー

名前付き関数をコールバックとして使用します

名前付き関数は、通常の関数と同様に定義できる名前を持つ関数です。名前付き関数をコールバックとして使用するには、関数に名前を付けます。

たとえば、数値を 2 乗して 10 を加算するコールバック関数を作成します。

function squareAndAdd10($num) { return $num * $num + 10; }
ログイン後にコピー

コールバックを使用する関数を呼び出す

いくつかの組み込み関数があります。コールバックを受け入れる関数内でパラメータとして使用します。例:

  • array_map(): 配列内の各要素にコールバックを適用します。
  • array_filter (): 配列要素をフィルターし、コールバックの結果に従って TRUE または FALSE を返します。
  • usort(): コールバックで定義された並べ替え条件に従って配列を並べ替えます。
たとえば、

array_map() を使用して、$add5 コールバックを配列 $numbers:

$numbers = [1, 2, 3, 4, 5];
$result = array_map($add5, $numbers);
ログイン後にコピー
に適用します。

この時点で、

$result には [6, 7, 8, 9, 10] が含まれます。

実際的なケース

コールバック関数を使用する一般的な例は、カスタム検証ルールを追加することです。フォームを処理する関数があり、フォーム フィールドの値を検証したいとします。コールバックを使用してカスタム検証ルールを定義し、そのルールを検証関数に渡すことができます。

たとえば、電子メール アドレスを検証するコールバックを作成します:

function validateEmail($email) { return filter_var($email, FILTER_VALIDATE_EMAIL); }
ログイン後にコピー

次に、このコールバックをフォーム検証関数に渡すことができます:

$validator = new FormValidator();
$validator->addRule('email', 'validateEmail');
ログイン後にコピー

さて、

FormValidator 電子メール アドレスは、validateEmail コールバックを使用して検証されます。

以上がPHP で関数をコールバックとして使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート