PHP7以降では配列と連想配列をdefineで定義できる

PHPではすべてのプログラムで不変の定数をdefineで定義できる。

define( 'NAME', 'Taro' ) );
echo NAME; // Taro

defineで定義された変数の値は変更できない。またクラス内ではdefineの代わりにconstを使う。constも配列を定義できる。

配列と連想配列

データベースに接続するとき、ホスト名やパスワードなどをdefineで定義することがよくある。

define('DB_HOST', '111.111.111.111');
define('DB_USER', 'hanako');
define('DB_PASSWORD', '123456');

※上のホスト名はあくまでも例。

しかしこれを

define( 'DB', array( '111.111.111.111', 'hanako', '123456' ) );

とできる。配列もふつうの変数のように、プログラムによって後で変更できない。なお、サーバールートにパスワードなどのデータベース情報を生で記すことはよくないとされる。

echo DB[ 1 ]; // 111.111.111.111
echo DB[ 2 ]; // hanako
echo DB[ 3 ]; // 123456

連想配列

連想配列も同様にdefineで定義できる。

define( 'DB', array( 'HOST' => '111.111.111.111',
  'USER' => 'taro',
  'PASSWORD' => '123456' ) );
echo DB[ 'HOST' ] // 111.111.111.111;
echo DB[ 'USER' ] // taro;
echo DB[ 'PASSWORD' ] // 123456;

広告