ホームページ  >  記事  >  バックエンド開発  >  PHPコールバック関数の使い方の詳しい説明

PHPコールバック関数の使い方の詳しい説明

php中世界最好的语言
php中世界最好的语言オリジナル
2018-04-11 10:05:491869ブラウズ

今回は、PHPのコールバック関数の使い方と、PHPコールバック関数を使用する際の注意事項について詳しく説明します。以下は実際のケースですので、見てみましょう。

この記事の例では、PHP コールバック関数の概念と使用法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

1. コールバック関数の概念

まず C 言語のコールバック関数を見てみましょう: コールバック関数は、

関数ポインターを介して呼び出される関数です。関数ポインタ (アドレス) をパラメータとして別の関数に渡し、このポインタを使用してそのポインタが指す関数を呼び出す場合、それをコールバック関数と呼びます。コールバック関数は、関数の実装者によって直接呼び出されるのではなく、特定のイベントまたは条件が発生したときに、そのイベントまたは条件に応答するために別のパーティによって呼び出されます。

他の言語のコールバック関数の概念は似ていますが、さまざまな言語のコールバック関数の実装メカニズムは異なります。一般的に、コールバック関数は定義した関数ですが、直接呼び出すのではなく、呼び出します。別の関数を呼び出すには、この関数はその名前とパラメーターを受け取ってコールバック関数を呼び出します。

2. phpでのコールバック関数の実装

PHP には、コールバック関数をサポートする 2 つの組み込み関数が用意されています。これら 2 つの関数の違いは、

call_user_func_arraycall_user_func()call_user_func_array() がコールバック 関数のパラメーターを配列の形式で受け取ることです。mixed call_user_func_array (callable $callback, array$param_arr) というプロトタイプを見るとわかります。パラメータは 2 つだけです。 call_user_func($callback, パラメータ 1, パラメータ 2,...) のパラメータの数は、コールバック関数のパラメータに従って決定されます。 スクリプト内のグローバル関数

へのコールバック、クラス内で $this を使用しない非静的メソッド、クラス内で $this を使用する非静的メソッド (オブジェクトを渡す必要がある)、および静的メソッドへのコールバックを実装する方法以下はコードを通過したテストです。

りー 実行結果:

<?php
//普通函数
function f1($arg1,$arg2)
{
  echo FUNCTION.&#39;exec,the args is:&#39;.$arg1.&#39; &#39;.$arg2;
  echo "<br/>";
}
//通过call_user_func调用函数f1
call_user_func('f1','han','wen');
  //通过call_user_func_array调用函数
call_user_func_array('f1',array('han','wen'));
class A
{
  public $name;
  function show($arg1)
  {
    echo 'the arg is:'.$arg1."<br/>";
    echo 'my name is:'.$this->name;
    echo "<br/>";
  }
  function show1($arg1,$arg2)
  {
    echo METHOD.' exec,the args is:'.$arg1.' '.$arg2."<br/>";
  }
  public static function show2($arg1,$arg2)
  {
    echo METHOD.' of class A exec, the args is:'.$arg1.' '.$arg2."<br/>";
  }
}
//调用类中非静态成员函数,该成员函数中有$this调用了对象中的成员
$a = new A;
$a->name = 'wen';
call_user_func_array(array($a,'show',),array('han!'));
//调用类中非静态成员函数,没有对象被创建,该成员函数中不能有$this
call_user_func_array(array('A','show1',),array('han!','wen'));
//调用类中静态成员函数
call_user_func_array(array('A','show2'),array('argument1','argument2'));
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨書籍:

PHP で file_put_contents 関数を使用する方法


PHP が phar ファイルを操作する方法


PHP が最長の共通部分文字列を解決する方法


PHP のメソッド乱数を生成できる?方法

以上がPHPコールバック関数の使い方の詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。