column

ITコラム

mv13013

プログラミングノウハウ

2019.01.10

PHP【 define 】グローバル定数の定義

PHP では、関数 define を使って定数を定義することができます。
変数と違って、定数はその中に入っているデータの値を変えることができません。
今回は、PHP の define 関数で定義する定数について紹介したいと思います。

本サイトでは XAMPP( ザンプ )という開発環境を使用しています。
XAMPP のインストール方法や起動方法については以下の記事をご参照下さい。
PHP【 開発環境 】XAMPP インストール
PHP【 開発環境 】XAMPP の使い方

なお、未経験からITエンジニアへの就職に興味がある方や未経験からプログラミングを効率よく学びたいと考えている方は、就職率98.3%で受講料無料のプログラミングスクールプログラマカレッジもおすすめです。

1. 定数とは

 
定数も 変数と同様にデータを入れる入れ物のようなものですが、変数と違って一度入れたデータの値を変更することができません。

例えば、名簿データから宛先を生成するようなプログラムで、「 様 」という文字を定数で定義しておくと、名前データと定数を連結させて宛先の一部を生成することができます。
このように、変える必要のないデータを定数として定義します。

define 関数を使って定数を定義する場合は、次のように記述します。

define( "定数名", データ );

定数も 変数と同様に 数値や文字列、ブール型データ(true と false)など、様々な型のデータを定義して使用します。

▲目次へ戻る

 

2. define 関数の書き方

 
PHP では、define 関数を使って定数を次のように定義します。

define ( "PI" , 3.14 );

上記は、数値データ「 3.14 」を定数「 PI 」として定義しています( PI = π パイ )。

define 関数を使用する際は、定数名の使用可能文字に制限はありませんが、大文字の英数字とアンダースコア( _ )で定数名を命名するのが一般的です。

英字の大文字と小文字は区別して認識されますが、以下のような定義をすると 大文字と小文字が区別されません。

define ( "PI" , 3.14 , true);

 
define 関数の第 3 引数は、定数名の大文字と小文字を区別するかどうかの任意設定項目です。

特に指定をしない場合は 大文字と小文字が区別して認識され、上記のように「 true 」を指定すると定数名の大文字と小文字は区別されません。

上記のように定義をすると、「 PI 」でも「 pi 」でも「 Pi 」でも「 pI 」でもデータ「 3.14 」を呼び出すことができます。

▲目次へ戻る

 

3. グローバル定数

 
プログラミング言語において「 グローバル 」という言葉は、プログラムのどの場所でも使用できるという意味があります。

グローバル定数とは、プログラムのどこからでも参照できる定数のことです。

define 関数を使用して定義された定数は、グローバル定数となります。
 

3-1. const

グローバル定数に対して、参照する際に一定のルールがある オブジェクト定数というものもあります。

オブジェクト定数は、const というキーワードを用いて定義します。

キーワード const で定義するオブジェクト定数については、PHP【 const 】オブジェクト定数の定義をご参照下さい。

▲目次へ戻る

 

4. define を使用したサンプル

 
define 関数を使用して定義した定数を使用してみます。

ソースファイルを以下のように作成します。
( ソースファイルの作成方法についてはソースファイルを作成をご参照下さい。)

<?php
  define("PI" , 3.14);
  echo 10 * PI;
?>

上記で使用されている「 echo 」は、データを出力するために使用する PHP の命令です。
  
 
サーバを起動して、ブラウザから ソースファイルにアクセスしてみて下さい。
( サーバの起動方法等についてはサーバを起動をご参照下さい。)
PHP define グローバル定数の定義 プログラマカレッジ
10 × PI(3.14)の計算結果である「 31.4 」の表示が確認できれば OK です。

このように、定数は変数と同様に 中に格納されたデータを定数名を用いて使用します。

一度定義されたデータの内容を変更することができない点が変数との違いです。

▲目次へ戻る

無料説明会

SHARE

最新記事

無料説明会に参加してみる

INTERNOUS,inc. All rights reserved.

無料オンライン説明会へ