PHPで定数を利用するメモ
定数の定義
定数定義にはdefineかconstを利用します。 defineとconstの違いは、defineはnamespaceの影響を受けないけど、constは受けるだけなのでしょうか。。。
define
define('ABC','ほげほげ'); echo ABC; // ほげほげ
const
const ABC = 'ほげほげ'; echo ABC; // ほげほげ
定数を文字列で取得
define('ABC','ほげほげ'); $a = 'ABC' echo constant($a); // ほげほげ
定義済みの定数を取得
var_dump(get_defined_constants());
マジック定数
定数を記述した環境によって変化する定数。
定数 | 実行結果 |
---|---|
__FILE__ |
/Users/taro/Desktop/dir/index.php |
__DIR__ |
/Users/taro/Desktop/dir/ |
Laravelの場合
/config/const.php
に定義する。
return [ 'CONSTANT_NAME' => 'Taro', 'CONSTANT_NUM' => [10,20,30] ]
使い方。
config('const.CONSTANT_NAME'); // Taro config('const.CONSTANT_NUM.0') // 10 config('const.CONSTANT_NUM')[1] // 20
定数が反映されない場合
キャッシュが原因の場合がある。
キャッシュを削除。
php artisan config:cache