php _call() と call_user_func_array() について
php __call() と call_user_func_array() の理解
1. 混合 __call (文字列名, 配列引数)
マジック メソッド __call() を使用すると、存在しないメソッドの呼び出しをキャプチャできます。これにより、__call() を使用して、 に依存するユーザー定義のメソッド処理を実装できます。呼び出される実際のメソッドの名前。これは、たとえばプロキシの実装に役立ちます。関数に渡された引数は、__call() メソッドから返される値として定義されます。メソッドの呼び出し元。
翻訳: このマジック メソッドを使用すると、ユーザーは、呼び出し時に実際のメソッド名に依存するメソッドを呼び出すことができます。典型的な例はプロキシを実装するために使用されます。メソッドのパラメータ $arguments は配列であり、__call() の戻り値はメソッド呼び出し元に返されます。
Vernacular: このメソッドは主に動的実装に使用されます。メソッド呼び出し 別のクラスが定義されている_ _call() メソッドの場合、ユーザーがこのクラスの存在しないメソッドを呼び出すと、呼び出された存在しないメソッドのメソッド名とパラメーターを使用して、ユーザーが定義した対応する操作を実行できます。このとき、__call() メソッドのパラメータはメソッド名と、呼び出される存在しないメソッドのパラメータです。
Example
<?php class Person { function talk( $sound ) { echo $sound; } function __call( $method , $args ) { echo 'you call method ' . $method . '<br>'; echo 'and the arguments are <br>'; var_dump( $args ); } } $person = new Person(); $person->test( 1 , TRUE ); ?>
プログラム出力
を呼び出し、引数は
array
0 => int 1
1 => boolean true
2.mixed call_user_func_array ( callback function, array param_arr )
param_arr のパラメータを使用してユーザー定義関数を呼び出します。
parameters
function
呼び出される関数。
param_arr
インデックス付き配列として関数に渡されるパラメータ。
戻り値
関数の結果を返すか、エラーの場合は FALSE を返します。
このメソッドは、クラス名、メソッドを渡すことでメソッドを動的に呼び出す効果を実現できます。クラス内の名前とメソッドのパラメータ
例
<?php class Person { function talk( $sound ) { echo $sound; } function __call( $method , $args ) { echo 'you call method ' . $method . '<br>'; echo 'and the arguments are <br>'; var_dump( $args ); } } $person = new Person(); call_user_func_array( array( $person , 'talk' ) , array( 'hello' ) ); ?>
プログラム出力
2 つのメソッドを共有して実装します。プロキシ モデル
class Person { function talk( $sound ) { echo $sound; } function __call( $method , $args ) { echo 'you call method ' . $method . '<br>'; echo 'and the arguments are <br>'; var_dump( $args ); } } class PersonProxy { private $person; function __construct() { $this->person = new Person(); } function __call( $method , $args ) { call_user_func_array( array( $this->person , $method ) , $args ); } } $person_proxy = new PersonProxy(); $person_proxy->talk( 'thank you' );
プログラム出力


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











ファンクションとは、関数を意味します。これは、特定の関数を備えた再利用可能なコード ブロックです。プログラムの基本コンポーネントの 1 つです。入力パラメータを受け取り、特定の操作を実行し、結果を返すことができます。その目的は、再利用可能なコード ブロックをカプセル化することです。コードの再利用性と保守性を向上させるコード。

Web アプリケーション開発に PHP を使用する場合、多くの場合データベースを使用する必要があります。データベースを使用すると、エラー メッセージがよく発生します。その中でも、PHPFatalerror: Calltoamemberfunctionfetch() は、PDO を使用してデータベースをクエリするときに発生する比較的一般的なエラーです。では、このエラーの原因と解決方法は何でしょうか?この記事ではそれについて詳しく説明します。 1. エラーの原因

タイトル: Array.Sort 関数を使用して C# で配列を並べ替える例 本文: C# では、配列は一般的に使用されるデータ構造であり、多くの場合、配列を並べ替える必要があります。 C# には Array クラスが用意されており、このクラスには配列を簡単に並べ替えるための Sort メソッドがあります。この記事では、C# で Array.Sort 関数を使用して配列を並べ替える方法を示し、具体的なコード例を示します。まず、Array.Sort 関数の基本的な使用法を理解する必要があります。 Array.So

この記事では、Python の enumerate() 関数と「enumerate()」関数の目的について学びます。 enumerate() 関数とは何ですか? Python の enumerate() 関数は、データ コレクションをパラメータとして受け取り、列挙オブジェクトを返します。列挙オブジェクトはキーと値のペアとして返されます。キーは各項目に対応するインデックス、値は項目です。構文 enumerate(iterable,start) パラメータ iterable - 渡されたデータ コレクションは、iterablestart と呼ばれる列挙オブジェクトとして返すことができます。 - 名前が示すように、列挙オブジェクトの開始インデックスは start によって定義されます。無視したら

MySQL.proc テーブルの役割と機能の詳細な説明。MySQL は人気のあるリレーショナル データベース管理システムです。開発者が MySQL を使用する場合、多くの場合、ストアド プロシージャ (StoredProcedure) の作成と管理が必要になります。 MySQL.proc テーブルは非常に重要なシステム テーブルであり、ストアド プロシージャの名前、定義、パラメータなど、データベース内のすべてのストアド プロシージャに関連する情報が保存されます。この記事では、MySQL.proc テーブルの役割と機能について詳しく説明します。

PHP でプログラミングする場合、多くの場合、配列をマージする必要があります。 PHP には、配列のマージを完了するための array_merge() 関数が用意されていますが、配列内に同じキーが存在する場合、この関数は元の値を上書きします。この問題を解決するために、PHP は配列をマージして同じキーの値を保持できる array_merge_recursive() 関数を言語で提供し、プログラム設計をより柔軟にします。配列マージ

PHP には、配列操作をより便利かつ高速にする強力な配列関数が多数あります。 2 つの配列を結合して連想配列にする必要がある場合、PHP の array_combine 関数を使用してこの操作を実行できます。この関数は、実際には、ある配列のキーを別の配列の値として新しい連想配列に結合するために使用されます。次に、PHP の array_combine 関数を使用して 2 つの配列を結合して連想配列にする方法を説明します。 array_comb について学ぶ

Vue の使い方と機能.use Function Vue は、多くの便利な機能を提供する人気のフロントエンド フレームワークです。その 1 つは Vue.use 関数で、これを使用すると Vue アプリケーションでプラグインを使用できるようになります。この記事では、Vue.use 関数の使い方と機能を紹介し、いくつかのコード例を示します。 Vue.use 関数の基本的な使用法は非常に簡単です。Vue がインスタンス化される前に関数を呼び出し、使用するプラグインをパラメータとして渡すだけです。簡単な例を次に示します。 // プラグインの導入と使用
