【PHP入門】defineで定数を定義する方法

規定値などの予め決められた値を設定するためには、定数を使用する場合があります。

PHPでは、定数を指定する方法としてdefineconstがあります。

この記事ではdefineの、

・defineとは?
・defineの基本的な使い方

という基本的な内容から、

・defineで配列を定義する方法
・defineの注意点
・constで定数を定義する方法

などのdefineで定数を定義する応用的な使い方についても解説していきます。

今回はそんなdefineで定数を定義するさまざまな方法について、わかりやすく解説します!

defineとは

定数とは、既定値や既に決まっている値を予め指定しておくIDのようなもので、プログラムの初期段階で設定し、以降定数の値を変更することはできません。

また、定数は通常の変数と区別するために、基本的にアルファベットの大文字で記述するのが慣例となっています。

定数を定義するdefineは、以下のように記述します。

defineの書き方:

bool define ( $定数名 , $値 [, bool $case_insensitive = false ] )

defineは第一引数に定数名を指定し、第二引数に定数の値を指定します。

PHP7からは第二引数の値に配列を指定することもできるようになりました。

第三引数にTRUEを指定すると、定数の大文字小文字を区別しないようになります。なお、デフォルトでは大文字小文字は区別されます。

defineで定数を定義してみよう!

以下にdefineを指定して、定数を定義する簡単な方法を記述します。

<?php

//定数を定義する
define('CONSTSTR1', 'Samurai');
define('CONSTSTR2', 'Engineer');

echo CONSTSTR1;
echo CONSTSTR2;

?>

実行結果:

SamuraiEngineer

defineで定義した内容は、前述したようにあとから値を変更することはできませんので注意しましょう。

defineで配列定数を定義する

定数はPHP7から配列を指定することが可能となりました。

ここでは、defineで配列を定義する方法について紹介します。

1次元配列の定数

defineで配列を定義するためには、defineの第二引数に配列を指定します。

以下に配列の定数を定義する方法を記述します。

<?php

define('FRUITS', array(
  'apple',
  'orange',
  'melon',
  'banana',
  'pineapple'
));

print_r(FRUITS);

?>

実行結果:

Array
(
    [0] => apple
    [1] => orange
    [2] => melon
    [3] => banana
    [4] => pineapple
)

連想配列の定数

定数では上述した1次元配列の他に、連想配列や多次元配列を定義することもできます。

以下にdefineで連想配列を定義する簡単なサンプルを記述します。

<?php

define('FRUITS', array(
  'apple'=>'100円',
  'orange'=>'80円',
  'melon'=>'600円',
  'banana'=>'100円',
  'pineapple'=>'450円'
));

print_r(FRUITS);

?>

実行結果:

Array
(
    [apple] => 100円
    [orange] => 80円
    [melon] => 600円
    [banana] => 100円
    [pineapple] => 450円
)

このように連想配列を定義することも可能です。

大文字小文字の判定

前述したようにdefineで定義した定数は大文字小文字を明確に区別します。

そのため、以下のように小文字で指定した場合は、定義されていない定数と判断されて警告が発生します。

<?php
 
//定数を定義する
define('CONSTSTR1', 'Samurai');
define('CONSTSTR2', 'Engineer');

echo conststr1;

実行結果:

PHP Notice:  Use of undefined constant conststr1 - assumed 'conststr1' in /workspace/Main.php on line 7

大文字小文字を区別しないようにするにはdefineの第三引数にtrueを指定する必要があります。

<?php

define('CONSTSTR1', 'Samurai', true);
define('CONSTSTR2', 'Engineer', true);

echo conststr1;
echo conststr2;

?>
実行結果
SamuraiEngineer

constで定数を定義する

PHPで定数を定義する方法は、先に紹介したdefineの他にクラス内で定義するオブジェクト定数であるconstがあります。

constはクラス内部で定数を定義するときに、constの後に定数名と値を指定します。

class クラス名{

  const 定数名 = 値;

}

defineとconstの違いは、

  • constはクラス内部で定数を定義できるがdefineはできない
  • constは名前空間の影響を受けるがdefineは受けない

constによる定数を定義する方法については、以下の記事で詳しく解説していますので、ぜひ参考にしてくださいね!

PHPについてもっと知りたい方へ

「PHPについて実はいまいちわかっていない・・・」
「もっとPHPについて詳しく知りたい!」

と思っている方は以下の記事も参考にしてみてください!

まとめ

ここでは、defineを使用した定数を定義する方法について解説しました。

定数はPHPに限らずさまざまな言語で使用しますので、この機会に使い方を覚えておきましょう。

もし、defineによる定数を定義する方法を忘れてしまったら、この記事を思い出してくださいね。

LINEで送る
Pocket

SEからWebエンジニアへ転職した理由

侍エンジニア塾卒業生の小池さんは、以前は社内SEとして約5年ほど勤務していました。しかし業務内容は社内のヘルプデスク対応など、プログラムを書く仕事は全くなかったそうです。

SEながらプログラムを書けない現状に「将来仕事がなくなるんじゃないか」と不安を感じ、プログラミング学習を決意。

弊社スクールで学習し、無事ベンチャー企業のプログラマーとして転職に成功しました。そんな小池さんの学習法や転職体験談を伺いましたので、是非ご覧ください。

「プログラミングができないSEは仕事がなくなる」不安を感じたSEが未経験から転職成功するまで
更新日 : 2019年10月7日

書いた人

ヤマシタ

エンジニア歴10年のフリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、200本以上の執筆経験があります。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説