PHPのdefine()で配列データの定義と利用方法について
他社が作成したPHPのソースコードを拝見した際に定数で配列が定義されていた。配列は定義できなかった筈では? と思って調べたところPHP7から定義できるようになっていたみたい。以下に定義方法と利用(出力)方法をメモ。
define
リファレンス
https://www.php.net/manual/ja/function.define.php
value
こちらに書かれている通りPHP7から配列を使えるようになった模様。
使い方
配列の定義
<?php
define('TEST_ARRAY', array(
0 => array(
'name' => '鈴木',
'age' => 20,
),
1 => array(
'name' => '山田',
'age' => 30,
),
));
<?php
define('TEST_ARRAY', array(
0 => array(
'name' => '鈴木',
'age' => 20,
),
1 => array(
'name' => '山田',
'age' => 30,
),
));
<?php define('TEST_ARRAY', array( 0 => array( 'name' => '鈴木', 'age' => 20, ), 1 => array( 'name' => '山田', 'age' => 30, ), ));
利用(出力)方法
<?php
var_dump(TEST_ARRAY[0]['name']);
foreach( TEST_ARRAY as $key => $val ){
var_dump($val);
}
<?php
var_dump(TEST_ARRAY[0]['name']);
foreach( TEST_ARRAY as $key => $val ){
var_dump($val);
}
<?php var_dump(TEST_ARRAY[0]['name']); foreach( TEST_ARRAY as $key => $val ){ var_dump($val); }
上記ソースコードを実行すると以下内容が出力される筈。
string(6) "鈴木"
array(2) {
["name"]=>
string(6) "鈴木"
["age"]=>
int(20)
}
array(2) {
["name"]=>
string(6) "山田"
["age"]=>
int(30)
}
string(6) "鈴木"
array(2) {
["name"]=>
string(6) "鈴木"
["age"]=>
int(20)
}
array(2) {
["name"]=>
string(6) "山田"
["age"]=>
int(30)
}
string(6) "鈴木" array(2) { ["name"]=> string(6) "鈴木" ["age"]=> int(20) } array(2) { ["name"]=> string(6) "山田" ["age"]=> int(30) }
所感
設定ファイルとかで基本的には定数を、配列データのみ普通の変数で定義していたけど今後は全部定数で対応できるのが嬉しい。
一応PHP7以上という制限はあるものの、こちらのサイトによるとPHP7 / 8の利用率が合計で83.3%となっているので問題無さそう。
関連記事
-
-
CodeIgniter3でCronを実行する方法
CodeIgniter3系で特定の処理をCronで自動実行したかった。以下に設定 ...
-
-
PHPからDBX Platformを利用してDropbox内のファイル一覧を取得する方法
以前にPHPからDropboxにファイルをアップロードするという記事を書いたが、 ...
-
-
Shift_JISでカタカナのソを出力するとエラー
先に結論として5C問題とかいうみたいで仕様らしい。 ■参考サイト http:// ...
-
-
PHPで日時比較時の注意
PHPで日時を比較する際にミスがあったのでメモ。 基本形は下記。 $limit_ ...
-
-
PHPでCookie保存時にHttpOnly / Secure属性を設定する方法
あるシステムのセキュリティ対策としてCookie保存時にHttpOnly / S ...