ホームページ バックエンド開発 PHPの問題 PHPのコールバック関数の書き方

PHPのコールバック関数の書き方

Sep 24, 2019 pm 02:00 PM
折り返し電話

PHPのコールバック関数の書き方

通常の関数の定義と呼び出しはjsと同様ですが、この定義方法は戻り値を必要とせず、戻り値があっても追加する必要はありません。宣言している。

後の PHP バージョンでは、関数が定義される前に呼び出すことができるという非常に便利な機能が追加されました。

echo add(1,2);
echo "</br>";
function add($a,$b){
    return $a+$b;
}
function sub($a,$b){
    return $a-$b;
}
echo add(23,12);
echo "</br>";
echo sub(23,22);
echo "</br>";
ログイン後にコピー

次に紹介するのは変数関数という名前の通り、変数として使用するとても便利な関数です。

利点は、同じ変数を使用して異なる関数を呼び出すことができることです。これは関数の多態性呼び出しと非常に似ています。

$var="add";
echo $var(4,2);
echo "</br>";
$var="sub";
echo $var(4,2);
echo "</br>";
ログイン後にコピー

コールバック関数とは、単純なパラメータを渡すだけでは問題が解決できない場合に、目的を達成するために関数に処理を渡す関数です。

関数を呼び出すときに関数をパラメーターとして渡すことは、関数コールバックです。

$arr=array(2,3,5,4,1,6,7,9,8);
var_dump($arr);
echo "</br>";
ログイン後にコピー
//这里是自定义回调函数,返回-1是指将两个元素交换,0和1是不发生改变。
function myrule($a,$b){
    if ($a>$b){
        return 1;
    }
    elseif ($a<$b){
        return -1;
    }
    else{
        return 0;
    }
}
//usort就是系统函数,但是他的第二个参数是回调函数,这个函数参数就是排序规则
usort($arr,"myrule");
var_dump($arr);
echo "</br>";
ログイン後にコピー

独自のコールバック関数を作成し、変数関数とコールバックを使用して、単純なフィルター条件を完成させます。複数の条件を同時に満たす必要がある場合は、&& 関係を指定するだけです。

使用される変数関数は、システム内の call_user_func_array() という関数を使用して呼び出すことができます。これには、コールバック関数の名前とパラメーター array の 2 つのパラメーターがあります。

call_user_func_array("demo " , array(1,3)); この利点は、デフォルトのパラメーターがある場合でも、配列内のパラメーターの数を元の関数の数よりも少なくできることです。

//rule1除去数组中是三的倍数的数
function rule1($a){
    if ($a%3==0){
        return true;
    }else{
        return false;
    }
}
//rule2是除去数组中的回文数(从左边读与从右边读是一样的)
function rule2($a){
    if ($a==strrev($a)){
        return true;
    }else{
        return false;
    }
}
function demo($n,$var){
    for ($i=0;$i<$n;$i++){
        if (call_user_func_array($var,array(23)))
        //if ($var($i))
        {
            continue;
        }else{
            echo $i."<br>";
        }
    }
}
$var="rule1";
demo(100,$var);
echo "</br>";
echo "<hr>";
$var="rule2";
demo(200,$var);
echo "</br>";
ログイン後にコピー

オブジェクト内のメソッドを呼び出す場合は、匿名オブジェクトを渡して関数名

を指定する必要があることに注意してください。クラス内の静的メソッドを呼び出す場合は、必要なのはクラス名を指定します。

上記 2 つのケースでは、変数関数を完全に使用することはできません。システム コールバック call_user_func_array() のみが使用できます。可変関数のみが、

class A{
    function one(){
    }
    static function two(){
    }}demo(200,array(new A,"one"));demo(200,array("A","two"));
ログイン後にコピー
を呼び出さずにパラメーターを渡します。

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

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

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Javaコールバック関数の書き方 Javaコールバック関数の書き方 Jan 09, 2024 pm 02:24 PM

Java コールバック関数の記述方法は次のとおりです: 1. インターフェイス コールバック、コールバック メソッドを含むインターフェイスを定義し、そのインターフェイスをコールバックをトリガーする必要があるパラメーターとして使用し、適切なタイミングでコールバック メソッドを呼び出します。匿名内部クラス コールバック 、追加の実装クラスの作成を避けるために、匿名内部クラスを使用してコールバック関数を実装できます; 3. ラムダ式コールバック. Java 8 以降では、ラムダ式を使用してコールバック関数の作成を簡素化できます。

Java のコールバック関数の基本構文と応用 Java のコールバック関数の基本構文と応用 Jan 30, 2024 am 08:12 AM

Java コールバック関数の基本的な書き方と使用法の紹介: Java プログラミングでは、コールバック関数は一般的なプログラミング パターンです。コールバック関数を通じて、メソッドをパラメータとして別のメソッドに渡し、それによってメソッドの間接的な呼び出しを実現できます。コールバック関数の使用は、イベント駆動型、非同期プログラミング、インターフェイス実装などのシナリオで非常に一般的です。この記事では、Java コールバック関数の基本的な書き方と使い方を紹介し、具体的なコード例を示します。 1. コールバック関数の定義 コールバック関数は、パラメータとして使用できる特殊な関数です。

Vue コンポーネント通信: コンポーネント通信にコールバック関数を使用する Vue コンポーネント通信: コンポーネント通信にコールバック関数を使用する Jul 09, 2023 pm 07:42 PM

Vue コンポーネント通信: コンポーネント通信にコールバック関数を使用する Vue アプリケーションでは、情報を共有して相互に連携できるように、さまざまなコンポーネントが相互に通信できるようにする必要がある場合があります。 Vue はコンポーネント間の通信を実装するさまざまな方法を提供します。一般的な方法の 1 つはコールバック関数を使用することです。コールバック関数とは、関数を引数として別の関数に渡し、特定のイベントが発生したときに呼び出される仕組みです。 Vue では、コールバック関数を使用してコンポーネント間の通信を実装できるため、コンポーネントは

JavaScript のコールバック関数 (同期および非同期) の詳細な分析 JavaScript のコールバック関数 (同期および非同期) の詳細な分析 Aug 04, 2022 am 10:05 AM

コールバック関数は、すべてのフロントエンド プログラマが知っておくべき概念の 1 つです。コールバックは、配列、タイマー関数、Promise、およびイベント処理で使用できます。この記事では、コールバック関数の概念について説明し、同期と非同期の 2 種類のコールバックを区別するのに役立ちます。

イベント駆動型プログラミングにおける Java コールバック関数の応用分野 イベント駆動型プログラミングにおける Java コールバック関数の応用分野 Feb 01, 2024 am 09:07 AM

イベント駆動型プログラミングにおける Java コールバック関数の応用 コールバック関数の概要 コールバック関数は、イベントまたは操作の発生後に呼び出される関数です。これはイベント駆動型プログラミングでよく使用され、イベントの発生を待機している間プログラムがブロックされます。イベントが発生すると、コールバック関数が呼び出され、プログラムは実行を継続できます。 Java では、コールバック関数はインターフェイスまたは匿名の内部クラスを通じて実装できます。インターフェイスは、あるクラスが別のクラスの実装を可能にする関数シグネチャを定義するためのメカニズムです。

Golangでデータベースコールバック関数を使用するにはどうすればよいですか? Golangでデータベースコールバック関数を使用するにはどうすればよいですか? Jun 03, 2024 pm 02:20 PM

Golang でデータベース コールバック関数を使用すると、次のことを実現できます。 指定されたデータベース操作が完了した後にカスタム コードを実行します。追加のコードを記述せずに、個別の関数を通じてカスタム動作を追加します。コールバック関数は、挿入、更新、削除、クエリ操作に使用できます。コールバック関数を使用するには、sql.Exec、sql.QueryRow、または sql.Query 関数を使用する必要があります。

一般的な Python コールバック関数アプリケーション シナリオを分析する 一般的な Python コールバック関数アプリケーション シナリオを分析する Feb 02, 2024 pm 09:34 PM

Python での一般的なコールバック関数アプリケーション シナリオの分析には、特定のコード サンプルが必要です。コールバック関数とは、プログラミングにおいて関数をパラメータとして別の関数に渡し、特定のイベントが発生したときにこのパラメータ関数を実行することを指します。コールバック関数は、非同期プログラミング、イベント処理、GUI プログラミングなどの分野で広く使用されています。この記事では、Python での一般的なコールバック関数のアプリケーション シナリオを分析し、関連する具体的なコード例を示します。非同期プログラミング 非同期プログラミングでは、非同期タスクの結果を処理するためにコールバック関数がよく使用されます。消費を実行する必要がある場合

C++ 関数ポインターとコールバック関数の比較 C++ 関数ポインターとコールバック関数の比較 Apr 18, 2024 pm 12:06 PM

関数ポインターとコールバック関数はどちらもコールバック メカニズムを実装するためのツールです。関数ポインタはコンパイル時に作成され、変更できず、明示的に呼び出す必要があります。コールバック関数は実行時に作成され、異なる関数に動的にバインドして、コールバック関数によって自動的に呼び出すことができます。したがって、関数ポインターは静的コールバックに適しており、コールバック関数は動的コールバックに適しています。

See all articles