検索
ホームページバックエンド開発PHPチュートリアルPHP関数のコールバック関数(1) 変数関数の定義、宣言、適用

いわゆるコールバック関数は、関数を呼び出すときに、標準変数をパラメータとして渡す代わりに、呼び出された関数に別の関数がパラメータとして渡されることを意味します。関数の形式説明に callback 型パラメーターが含まれている場合、その関数はコールバック関数です。前のセクションでは php 変数パラメーター関数 を紹介しましたが、このセクションでは php コールバック関数の学習に入ります。

コールバック関数の形式の説明は次のとおりです:

mixed funName (callback arg)   //在参数列表中使用伪类型 callback 描述

callback は PHP の疑似型の一種でもあり、関数のパラメーターが別の関数を実際のパラメーターとして受け入れる必要があることを示します。非常に重要な疑問は、なぜ関数をパラメーターとして使用するのかということです。前に紹介したように、呼び出し元関数の実行動作はパラメーターを渡すことで変更できますが、関数に値を渡すだけの機能がまだ制限されている場合があります。ユーザー定義の実行プロセスを関数に渡して使用できれば、ユーザーによる関数の機能拡張が大幅に向上します。コールバック関数を宣言して使用する方法も重要な問題です。コールバック関数を宣言する必要がある場合は、まず変数関数を理解する必要があります。

変数関数

変数関数は、変数関数とも呼ばれます。変数名の後にかっこが続く場合、PHP は変数の値と同じ名前の関数を探し、その関数の実行を試みます。たとえば、関数 test() を宣言し、関数名文字列 test を変数 $demo に割り当てます。 $demo 変数を直接出力する場合、出力値は文字列 test でなければなりませんが、$demo 変数の後に括弧 $demo() を追加すると、$demo 変数値 test に対応する関数が呼び出されます。このようにして、同じ変数に異なる関数名を割り当てることができ、その変数を介して関数を呼び出すことができます。これは、オブジェクト指向におけるポリモーフィック機能の適用に似ています。

コード例は次のとおりです:

<?php
 function one($a,$b){
   return $a + $b;
 }
 function two($a,$b){
   return $a*$b;
 }
 function three($a,$b){
   return $a/$b;
 }
 $result = "one";          //将函数名one赋值给变量$result,执行$result()时则调用函数one()
 //$result = "two";        //将函数名two赋值给变量$result,执行$result()时则调用函数two()
 //$result = "three";      //将函数名three赋值给变量$result,执行$result()时则调用函数three()
 echo "结果是:".$result(4,6);   //变量$result接收到哪个函数名的值,就调用哪个函数
?>

上記の例では、3 つの関数 one()、two()、three() が宣言されており、それぞれ 2 つの数値の合計、積、商を計算するために使用されます。 。そして、3 つの関数の関数名 (括弧なし) を文字列の形式で変数 $result に代入し、変数名 $result の後に 括弧を付けて 2 つの整数パラメーターを渡すと、次の関数が見つかります。変数 $result の値と同じ名前が実行されます。ほとんどの関数は、関数 name を変数に割り当てて、変数関数を形成できます。ただし、変数関数は言語構造では使用できません。

変数関数を使用してコールバック関数を宣言および適用する

コールバックできる関数をカスタマイズする場合は、変数関数を使用して実装を支援することを選択できます。コールバック関数を定義する場合、宣言されたパラメータが通常の変数である限り、関数の宣言構造は変わりません。ただし、このパラメータ変数を関数内で使用する場合、括弧を追加すると、パラメータ値と同じ名前の関数を呼び出すことができるため、渡されるパラメータは別の関数の名前文字列である必要があります。コールバック関数を使用する目的は、独自に定義した関数を関数に渡して使用することです。

コード例は次のとおりです:

<?php
 //声明回调函数filter, 在0-10的整数中通过自定义条件过滤不要的数字
 function filter($fun){
   for($i=0; $i<=10; $i++){
     //将参数变量$fun加上一个圆括号$fun(),则为调用和变量$fun值同名的函数
     if($fun($i))
       continue;
       echo $i.&#39;<br>&#39;;
   }
 }
 //声明一个函数one,如果参数是3的倍数就返回ture,否则返回false
 function one($num){
   return $num%3 == 0;
 }
 //声明一个函数two,如果参数是一个回文数返回ture,否则返回false
 function two($num){
   return $num == strrev($num);
 }
 filter("one");   //打印出10以内非3的倍数,参数one是函数one()的名称字符串,是一个回调
 echo "---------------------<br>";
 filter("two");   //打印出10以内非回文数,参数two是函数two()的名称字符串,是一个回调
?>

実行結果は次のとおりです:

PHP関数のコールバック関数(1) 変数関数の定義、宣言、適用

上記の例では、宣言された関数 filter() がパラメータとして通常の値のみを受け入れる場合、ユーザーはフィルターで除外できます数値は比較的単純なものになります。この例では、定義された関数 filter() で、フィルター条件として渡された税金を含む値が呼び出されます。このようにして、この関数は、フィルターで不要な数値を除外できます。フィルター()関数。関数filter()内でパラメータ変数$funに括弧$fun()を追加することで、変数$funと同じ値を持つ関数をフィルタリング条件として呼び出すことができます。たとえば、この例では、2 つの関数 one() と two() が宣言されています。これらは、filter() を呼び出すときに関数名 one と two が文字列である限り、それぞれ 10 以内の 3 の倍数と回文をフィルタリングするために使用されます。これら 2 つの関数はパラメーターに渡され、内部使用のために filter() 関数に渡されます。

この章では、PHP コールバック関数の変数関数の定義、宣言、応用について説明します。次の章では、PHP コールバック関数の call_user_func_array() 関数とその使用法を紹介します

【おすすめ関連チュートリアル】

1.「

php.cn Dugu Jiijian (4) - PHPビデオチュートリアル

2.

PHPプログラミングの入門からマスターまでの完全なビデオチュートリアルセット

3. .

php実践的なビデオチュートリアル

以上がPHP関数のコールバック関数(1) 変数関数の定義、宣言、適用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPは、オブジェクトのクローニング(クローンキーワード)と__Clone Magicメソッドをどのように処理しますか?PHPは、オブジェクトのクローニング(クローンキーワード)と__Clone Magicメソッドをどのように処理しますか?Apr 17, 2025 am 12:24 AM

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

PHP対Python:ユースケースとアプリケーションPHP対Python:ユースケースとアプリケーションApr 17, 2025 am 12:23 AM

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。

さまざまなHTTPキャッシングヘッダー(例:キャッシュコントロール、ETAG、ラスト変更)を説明してください。さまざまなHTTPキャッシングヘッダー(例:キャッシュコントロール、ETAG、ラスト変更)を説明してください。Apr 17, 2025 am 12:22 AM

HTTPキャッシュヘッダーの主要なプレーヤーには、キャッシュコントロール、ETAG、およびラスト修飾が含まれます。 1.Cache-Controlは、キャッシュポリシーを制御するために使用されます。例:キャッシュコントロール:Max-Age = 3600、public。 2。ETAGは、一意の識別子を介してリソースの変更を検証します。例:ETAG: "686897696A7C876B7E"。 3. Last-Modifiedは、リソースの最後の変更時間を示しています。

PHPでの安全なパスワードハッシュ(例:Password_hash、password_verify)を説明します。 MD5またはSHA1を使用してみませんか?PHPでの安全なパスワードハッシュ(例:Password_hash、password_verify)を説明します。 MD5またはSHA1を使用してみませんか?Apr 17, 2025 am 12:06 AM

PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

PHP:サーバー側のスクリプト言語の紹介PHP:サーバー側のスクリプト言語の紹介Apr 16, 2025 am 12:18 AM

PHPは、動的なWeb開発およびサーバー側のアプリケーションに使用されるサーバー側のスクリプト言語です。 1.PHPは、編集を必要とせず、迅速な発展に適した解釈言語です。 2。PHPコードはHTMLに組み込まれているため、Webページの開発が簡単になりました。 3。PHPプロセスサーバー側のロジック、HTML出力を生成し、ユーザーの相互作用とデータ処理をサポートします。 4。PHPは、データベースと対話し、プロセスフォームの送信、サーバー側のタスクを実行できます。

PHPとWeb:その長期的な影響を調査しますPHPとWeb:その長期的な影響を調査しますApr 16, 2025 am 12:17 AM

PHPは過去数十年にわたってネットワークを形成しており、Web開発において重要な役割を果たし続けます。 1)PHPは1994年に発信され、MySQLとのシームレスな統合により、開発者にとって最初の選択肢となっています。 2)コア関数には、動的なコンテンツの生成とデータベースとの統合が含まれ、ウェブサイトをリアルタイムで更新し、パーソナライズされた方法で表示できるようにします。 3)PHPの幅広いアプリケーションとエコシステムは、長期的な影響を促進していますが、バージョンの更新とセキュリティの課題にも直面しています。 4)PHP7のリリースなど、近年のパフォーマンスの改善により、現代の言語と競合できるようになりました。 5)将来的には、PHPはコンテナ化やマイクロサービスなどの新しい課題に対処する必要がありますが、その柔軟性とアクティブなコミュニティにより適応性があります。

なぜPHPを使用するのですか?利点と利点が説明されましたなぜPHPを使用するのですか?利点と利点が説明されましたApr 16, 2025 am 12:16 AM

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター