PHP では、コールバックは呼び出し可能な型の関数オブジェクト/参照であり、コールバック (または呼び出し可能な) 変数は関数、オブジェクト メソッド、および静的クラス メソッドとして使用できます。コールバックの実装方法は数多くありますが、この記事ではその一部を紹介しますので、皆様の参考になれば幸いです。 [ビデオチュートリアルの推奨: PHP チュートリアル]
1. 標準コールバック
例: call_user_func( を使用します) ) 関数は、引数が関数名である関数を呼び出します。
<?php header("content-type:text/html;charset=utf-8"); function text1(){ echo '这个是text1<br>'; }; call_user_func('text1'); ?>
出力:
这个是text1
説明: call_user_func() 関数が呼び出され、実行中に call_user_func() 関数が text1() 関数をコールバックします。
2. 静的クラス メソッドのコールバック
例: call_user_func() 関数を使用して静的クラス メソッドを呼び出します。ここで、パラメーターはクラス名と呼び出されるメソッドの配列。
<?php header("content-type:text/html;charset=utf-8"); class Demo { // 用于输出字符串的函数 static function someFunction() { echo "父级函数输出 <br>"; } } class Article extends Demo { // 用于输出字符串的函数 static function someFunction() { echo "子级函数输出 <br>"; } } // 静态类方法回调 call_user_func(array('Article', 'someFunction')); call_user_func('Article::someFunction'); // 相对静态类方法回调 call_user_func(array('Article', 'parent::someFunction')); ?>
出力:
子级函数输出 子级函数输出 父级函数输出
3. オブジェクト メソッドのコールバック
例: call_user_func() 関数を使用してオブジェクト メソッドを呼び出します。オブジェクト変数と、呼び出されるメソッドの文字列名の配列が含まれます。
<?php header("content-type:text/html;charset=utf-8"); class Demo { // 输出字符串的函数 static function someFunction() { echo "PHP中文网 <br>"; } // 输出字符串的函数 public function __invoke() { echo "__invoke()函数<br>"; } } // 类对象 $obj = new Demo(); // 对象方法调用 call_user_func(array($obj, 'someFunction')); call_user_func($obj); ?>
出力:
PHP中文网 __invoke()函数
4. クロージャ コールバック
例: array_map() 関数を使用して有効な値を代入します。クロージャ関数 引数の配列 標準呼び出しを行うか、クロージャ関数をマッピングすることによってクロージャ関数を呼び出し可能にします。ここで、引数はクロージャ関数とその有効な引数の配列です。
<?php header("content-type:text/html;charset=utf-8"); // 用于输出<br> $print_function = function($string) { echo $string."<br>"; }; // 字符串数组 $string_array = array("PHP", "Python", "MySQL"); // 可调用闭包 array_map($print_function, $string_array); ?>
出力:
PHP Python MySQL
上記がこの記事の全内容です。皆さんの学習に役立つことを願っています。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !
以上がPHPでコールバックを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPは死にかけていませんが、常に適応して進化しています。 1)PHPは、1994年以来、新しいテクノロジーの傾向に適応するために複数のバージョンの反復を受けています。 2)現在、電子商取引、コンテンツ管理システム、その他の分野で広く使用されています。 3)PHP8は、パフォーマンスと近代化を改善するために、JITコンパイラおよびその他の機能を導入します。 4)Opcacheを使用してPSR-12標準に従って、パフォーマンスとコードの品質を最適化します。

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

PHPでは、特性は方法が必要な状況に適していますが、継承には適していません。 1)特性により、クラスの多重化方法が複数の継承の複雑さを回避できます。 2)特性を使用する場合、メソッドの競合に注意を払う必要があります。メソッドの競合は、代替およびキーワードとして解決できます。 3)パフォーマンスを最適化し、コードメンテナビリティを改善するために、特性の過剰使用を避け、その単一の責任を維持する必要があります。

依存関係噴射コンテナ(DIC)は、PHPプロジェクトで使用するオブジェクト依存関係を管理および提供するツールです。 DICの主な利点には、次のものが含まれます。1。デカップリング、コンポーネントの独立したもの、およびコードの保守とテストが簡単です。 2。柔軟性、依存関係を交換または変更しやすい。 3.テスト可能性、単体テストのために模擬オブジェクトを注入するのに便利です。

SplfixedArrayは、PHPの固定サイズの配列であり、高性能と低いメモリの使用が必要なシナリオに適しています。 1)動的調整によって引き起こされるオーバーヘッドを回避するために、作成時にサイズを指定する必要があります。 2)C言語アレイに基づいて、メモリと高速アクセス速度を直接動作させます。 3)大規模なデータ処理とメモリに敏感な環境に適していますが、サイズが固定されているため、注意して使用する必要があります。

PHPは、$ \ _ファイル変数を介してファイルのアップロードを処理します。セキュリティを確保するための方法には次のものが含まれます。1。アップロードエラー、2。ファイルの種類とサイズを確認する、3。ファイル上書きを防ぐ、4。ファイルを永続的なストレージの場所に移動します。

JavaScriptでは、nullcoalescingoperator(??)およびnullcoalescingsignmentoperator(?? =)を使用できます。 1.??最初の非潜水金または非未定されたオペランドを返します。 2.??これらの演算子は、コードロジックを簡素化し、読みやすさとパフォーマンスを向上させます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

Dreamweaver Mac版
ビジュアル Web 開発ツール

メモ帳++7.3.1
使いやすく無料のコードエディター
