定数について、わかっているつもりでも種別や使い方を誤る事が多いので、
勉強しました。
#定数とは
定数とは変数と異なり、途中で中身を変更できない入れ物のことです。
スクリプトの中でなんらかの意味を持つ値にあらかじめ値をつけておく仕組みとも言えます。
const TAX = 1.08;
$price = 1000;
$sum = $price * TAXs;
print $sum;
//結果:1000
constは定数を宣言するための命令で、ここでは定数TAXを1.08という値で設定しています。
const 定数名 = 値
定数の命名規則は変数とほぼ同じですが、次の点が異なります。
###1.先頭に「$」のような記号を付ける必要がない
変数のように、1文字目の「$」は不要です。定数は「$TAX」ではなく、そのまま「TAX」のように命名します。
###2.PHPで意味を持つ予約語でないこと
PHPで元々定数定義されている予約語は使用しないでください。
###3.すべて大文字で命名する
構文規則ではりませんが、定数は変数と視覚的にも区別しやすいようにすべて大文字で命名します。
命名規則は「TAX_FREE」のようにアンダースコア「_」区切りで表します。
ただし、defineで定義すると以下のように値を変更できません。
<?php
define('TAX', 1.08); // 消費税
define('TAX', 1.10); // 消費税を変更
echo TAX;
<実行結果>
Notice: Constant TAX already defined
1.08
#定義済みの定数一覧
PHPには最初から用意
定数 | 概要 |
---|---|
__FILE__ | 実行中のファイル名(絶対パス) |
__DIR__ | 実行中のファイルが存在するフォルダ |
__LINE__ | 実行中の行番号 |
__FUNCTION__ | 実行中の関数名 |
__CLASS__ | 実行中のクラス名(所属する名前空間含む) |
__METHOD__ | 実行中のメソッド名 |
__TRAIT__ | 実行中のトレイと名(所属する名前区間含む) |
__NAMESPACE__ | 現在の名前空間 |
DIRECTORY_SEPARATOR | フォルダ区切り文字 windows「\」linux「/」 |
PATH_SEPARATOR | パス区切り文字 |
PHP_VERSION | 使用しているPHPバージョン |