PHPでコールバックを実装するにはどうすればよいですか?

青灯夜游
リリース: 2023-04-05 15:34:01
オリジナル
5580 人が閲覧しました

PHP では、コールバックは呼び出し可能な型の関数オブジェクト/参照であり、コールバック (または呼び出し可能な) 変数は関数、オブジェクト メソッド、および静的クラス メソッドとして使用できます。コールバックの実装方法は数多くありますが、この記事ではその一部を紹介しますので、皆様の参考になれば幸いです。 [ビデオチュートリアルの推奨: PHP チュートリアル]

PHPでコールバックを実装するにはどうすればよいですか?

1. 標準コールバック

例: call_user_func( を使用します) ) 関数は、引数が関数名である関数を呼び出します。

<?php 
header("content-type:text/html;charset=utf-8");
function text1(){
    echo &#39;这个是text1<br>&#39;;
};
call_user_func(&#39;text1&#39;);
  
?>
ログイン後にコピー

出力:

这个是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(&#39;Article&#39;, &#39;someFunction&#39;)); 
  
call_user_func(&#39;Article::someFunction&#39;); 
  
// 相对静态类方法回调
call_user_func(array(&#39;Article&#39;, &#39;parent::someFunction&#39;)); 
  
?>
ログイン後にコピー

出力:

子级函数输出
子级函数输出
父级函数输出
ログイン後にコピー

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