こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
この記事では、 PHPで定数を定義できるdefine関数について
- define関数とは
- define関数を使うときの注意点
- define関数を使ったサンプルプログラム
と、丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
PHPのバージョン | 8.0.3 |
XAMPPのバージョン | 8.0.3 |
PHPを動かすためにXAMPPを使っています。
XAMPPのインストールは、下の記事をご参考ください。
define関数とは
define関数とは、引数に指定された値を定数として定義する関数です。
define関数で定義された定数はグローバル定数、つまり、プログラムのどこからでも呼ぶことができる定数になります。
使い方サンプルは下記になります。
1 |
define('HELLO', 'こんにちは'); |
上記の例だと、【HELLO】を呼ぶと、’こんにちは’という値が取得できます。
定数の名前の付け方は
- 大文字の英字
- 数字
- アンダースコア(_)
でつけるのが一般的です。
define関数を使うときの注意点
define関数を使うときの注意点として
- 定数の中身を変えることができない
- バージョン8以降は3つ目の引数は削除されている
の2点があります。
それぞれ解説します。
注意点その1:定数の中身を変えることができない
注意点その1の定数の中身を変えることができない、についてです。
define関数では、1度宣言すると変更することができません。
なのでたとえば
1 2 |
define('GREETING', 'おはよう'); define('GREETING', 'こんにちは'); |
を実行すると
1 |
Warning: Constant GREETING already defined in C:\xampp\htdocs\define_sample.php on line 3 |
【GREETING】という定数はすでに宣言されている、とエラーになります。
同じものを宣言しないよう、ご注意ください。
注意点その2:バージョン8以降は3つ目の引数は削除されている
注意点その2のバージョン8以降は3つ目の引数は削除されている、についてです。
define関数はバージョン8以前は
1 |
define('GREETING', 'おはよう', true); |
というように指定できる引数は3つでした。
3つ目の引数は、大文字と小文字を区別するかどうかを設定していました。
意味は以下になります。
true | 大文字と小文字を区別しない |
---|---|
false | 大文字と小文字を区別する |
3つ目の引数は任意指定で、デフォルト値はfalseでした。
これがPHPバージョン8.0.0で削除されました。
もしバージョン8以降で3つ目の引数を指定していると
1 |
Warning: define(): Argument #3 ($case_insensitive) is ignored since declaration of case-insensitive constants is no longer supported in C:\xampp\htdocs\define_sample.php on line 2 |
とエラーになります。
define関数を扱うとき、PHPのバージョンにはお気を付けください。
では、次の章で実際に使ってみます。
define関数を解説するプログラムの概要
define関数を解説するプログラムでは、define関数で宣言した定数を使って計算しその結果を確認します。
phpプログラムは
C:\xampp\htdocs
配下に、【define_sample.php】というファイル名で格納しています。
PHPサンプルプログラム
1 2 3 4 5 6 |
<?php define('PI', 3.14); print('半径10の円の円周を計算<br >'); print('10 × 2 × 3.14 = '.(10 * 2 * PI)); ?> |
実行結果
XAMPPを起動して、【http://localhost/define_sample.php】のURLにアクセスします。
XAMPPでPHPの動かし方については、こちらの記事をご参考ください。
無事、定数を取得し計算できていることを確認できました。
まとめ:define関数を使ってみよう!
以上がPHPで定数を定義できるdefine関数についての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント