《PHP8上級試験対策》PHPのコールバック配列で静的メソッドとインスタンスメソッドを呼び出す方法

  • URLをコピーしました!

はじめに

PHPのコールバックは、柔軟で強力な機能の一つです。特にクラスのメソッドをコールバックとして扱う際、静的メソッドとインスタンスメソッドでは呼び出し方が少し異なります。本記事では、PHP8で推奨されるコールバックの記述方法を具体例付きで解説します。
PHP8上級試験の問題でも出題されるポイントなので、しっかり理解しておきましょう。

キーワード:PHP / コールバック / 静的メソッド / インスタンスメソッド / メソッド呼び出し /

目次

コード例と解説

<?php
declare(strict_types=1); 
error_reporting(-1);

class Hoge {
    public static function foo() {
        echo __METHOD__, "<br>";
    }

    public function bar() {
        echo __METHOD__, "<br>";
    }
}

$f = [Hoge::class, 'foo'];
$f();

$f2 = [new Hoge(), 'bar'];
$f2();
  1. declare(strict_types=1); で型の厳格チェックを有効にし、error_reporting(-1); で全てのエラー表示をONにしています。
  2. Hogeクラスは静的メソッドfooとインスタンスメソッドbarを持っています。
  3. コールバックとして
    • 静的メソッドは [クラス名, 'メソッド名']
    • インスタンスメソッドは [インスタンス, 'メソッド名']の形で指定します。
  4. $f()$f2()の呼び出しで、それぞれ対応したメソッドが実行されます。
  5. __METHOD__ は現在実行中のメソッド名を返すマジック定数です。

まとめ

PHPでは、配列形式のコールバックで静的・インスタンス両方のメソッドを柔軟に呼び出せます。
PHP8上級試験の理解を深めるためにも、ぜひ覚えておきたい基礎知識です。

この記事が気に入ったら
いいねしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次