小ネタです。
アプリケーションを作成していると、静的関数(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() } }