🌊

PHPのdefine

2024/07/17に公開

define

嬉しいこと

  1. 変数や関数の戻り値が使える

    <?php
    $val = '適当な変数';
    define('MY_CONST', $val);
    echo MY_CONST; // 適当な変数
    
    define('NOW', microtime(true));
    echo NOW; // 1579431033.9034
    

    constだとこれができない

  2. トップレベル以外で使える

    ifの中でも使える

デメ

  1. 関数の呼び出しのオーバーヘッドがあるため、遅い
  2. クラス定数として定義できない

constは名前空間上に登録されるが

defineはグローバルに登録される

※グローバル汚染にならないように、なるべくconstを使う

Discussion