ホームページ > バックエンド開発 > PHPの問題 > PHP呼び出しメソッドの使い方

PHP呼び出しメソッドの使い方

藏色散人
リリース: 2023-03-04 07:02:01
オリジナル
3683 人が閲覧しました

php の呼び出しメソッドは、オブジェクト内でアクセスできないメソッドが呼び出されたときに呼び出される「__call()」マジック メソッドを指します。呼び出しメソッドの形式は「function __call(string $function_name,array $」です)引数){メソッド本体}"。

PHP呼び出しメソッドの使い方

推奨: 「PHP ビデオ チュートリアル

オブジェクト転送でアクセスできないメソッドを呼び出す場合の __call() 。

このメソッドには 2 つのパラメータがあります。最初のパラメータ $function_name は存在しないメソッド名を自動的に受け取り、2 番目の $arguments は存在しないメソッドの複数のパラメータを配列形式で受け取ります。

1. __call() メソッドの形式:

function __call(string $function_name, array $arguments){    // 方法体}
ログイン後にコピー

2. __call() メソッドの機能:

メソッド呼び出し時のエラーを避けるため存在しない場合、__call() メソッドを使用することで、誤ってプログラムが終了することを回避できます。

呼び出されたメソッドが存在しない場合、このメソッドは自動的に呼び出され、プログラムは実行を継続します。

次のコードを参照してください:

<?phpclass Person{                             
    function say()    {  
                              
           echo "Hello, world!<br>"; 
    }      
        
    /**
     * 声明此方法用来处理调用对象中不存在的方法
     */    function __call($funName, $arguments)    
     { 
          echo "你所调用的函数:" . $funName . "(参数:" ;  
          // 输出调用不存在的方法名
          print_r($arguments); 
          // 输出调用不存在的方法时的参数列表          
          echo ")不存在!<br>\n"; 
          // 结束换行                      
    }                                          
}
$Person = new Person();            
$Person->run("teacher"); // 调用对象中不存在的方法,则自动调用了对象中的__call()方法$Person->eat("小明", "苹果");             
$Person->say();
ログイン後にコピー

実行結果:

你所调用的函数:run(参数:Array ( [0] => teacher ) )不存在!
你所调用的函数:eat(参数:Array ( [0] => 小明 [1] => 苹果 ) )不存在!
Hello, world!
ログイン後にコピー

以上がPHP呼び出しメソッドの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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