【PHP】【Laravel】静的関数で自分のグローバル変数(関数)を取得する方法

小ネタです。

アプリケーションを作成していると、静的関数(static function)からグローバル変数を使いたい時があります。
今回は、Laravelで自身のテーブル名を取得する方法を使って説明します。

動的関数の場合

通常の関数であれば$this->(変数名)で取得できます。
Laravelの場合、getTable()でテーブル名を取得する事ができます。
(直接変数を呼び出す事が出来ます。今回は用意されている関数を使用します。)

<?php
class User extends Model
    public $table = 'table_name'

    public function getAdvancedUsers() {
        $tableName = $this->getTable()
    }
}

静的関数の場合

静的関数では、$thisを使う事ができません。
そのため、自身のクラスのインスタンスを作る事で取得します。
自身のクラスはself()で取得できます。

<?php
class User extends Model
    public $table = 'table_name'

    public static function getAdvancedUsers() {
        $tableName = (new self())->getTable()
    }
}

©︎2017-2018 WebSandBag