のぐそんブログ

暗いおじさんがシコシコ書くブログです。

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