【PHP】defineについて

Pocket

エンジニアを目指すうえでPHPはハードルが高く感じますが、その中で大体出てくるのが「define」ですね。私自身よく理解できていないので早速意味を理解し、メモしていきます。

 

「define」とは?

「define」とは英語訳で「定義する」「限定する」といった意味です。 PHPのdefine関数では定数を定義するという意味です。

PHPやJavascriptには、「定数」と「変数」がありますが、この「定数」は一度宣言するとその後は値の更新ができない値のことをいいます。(逆に値を変えることができるものが変数)。

プログラムの動作の中で、変更してしまうと困るような情報をdefine関数で定義するのが役割となります。

 

define関数で定数を作ってみましょう

PHPでdefine関数を宣言する際の注意点です。定数名に利用できるのは変数と同じく英数字か_(アンダースコア)で、数字が使えるのは2文字目以降となります。 定数名は小文字を利用せず、大文字のみで定義するのが一般的のようですね。

例として、100円の商品に10%の消費税計算をしてみます。

こんな感じで定数と変数を使ったプログラムを作っていくことができます。

ここでの注意点として、定数は変数と違って呼び出す際に$(ダラー)をつけない点に注意です。

定数についての注意点

大文字と小文字の区別

define関数は定数名の大文字と小文字を明確に区別する関数となっています。

ですが、第三引数にtrueを設定すると大文字と小文字の区別がなくなり、大文字で宣言した場合でも小文字で呼び出すことが可能になります。

また、第三引数にfalseを指定すると省略した場合と同じく大文字と小文字が区別されます。

 

defineで定義した値は書き換えられない

 

このように定数は変更しようとしても書き換わらず、さらに「もう定数宣言されてるよ」といった意味のエラー文がでます。

配列定数の定義

PHP7以降ではdefineで配列を定義することができます。配列の定数なので配列定数と呼ばれます。

 

 

const構文との違い

同じく定数定義できるものにconst構文があります。

define関数とconst構文との違いは、define関数がプログラム内のどこからでも呼び出せるグローバルな定数を宣言できるのに対し、const構文は宣言したクラス内でしか使えないローカルな定数となっています。

プログラム全体からアクセスする可能性がある定数については、define関数で定義するほうが良いようです。逆にそのクラス内でしか使わないような定数は、const構文を用いたほうがいいでしょう。とはいうものの、私はまだプログラムを組めるほどの知識はありませんので、まだ使い分けについてはよく分かっていませんが(^^;)

 

まとめ

  • define関数は定数を定義する為のものである。
  • 定数は変数のように書き換えることはできない
  • define関数の構文は大文字と小文字を区別する点に注意

 

 

エッグ

シェアする

コメントを残す

メールアドレスが公開されることはありません。

コメントする