質問編集履歴

2 追記

Kosuke_Shibuya

Kosuke_Shibuya score 20775

2016/09/17 05:33  投稿

PHP7新機能・定数に配列を定義
先日こちらのページ [PHPマニュアル > 付録 > 変更履歴](https://secure.php.net/manual/ja/doc.changelog.php) を眺めていたときに、
![イメージ説明](c9c0497bba453137da1386d3227beea7.png)
「define() に配列を定義できるようになった」と記述されており、
[define](https://secure.php.net/manual/ja/function.define.php)
![イメージ説明](c3c46c3938532115ff29c4ee35f6758d.png)
実際に以下のコードで試したところ
```php
<?php
define('ARRAY_SAMPLE_01', ['a', 'b', 'c']);
define('ARRAY_SAMPLE_02', ['a' => 100, 'b' => 200, 'c' => 300]);
var_dump(ARRAY_SAMPLE_01);
var_dump(ARRAY_SAMPLE_01[0]);
var_dump(ARRAY_SAMPLE_02);
var_dump(ARRAY_SAMPLE_02['b']);
```
確かに動くのですが、いったいどんな場面で使えばいいの?というのが疑問です。
そもそも定数に定義できるのはスカラー値であるというルールのもとで利用していたので、配列を定義したいと思ったことがありません。
そこで質問なのですが、
0. これまで定数に配列を定義したいと思ったことがありますか?
0. また、それはどんなケースでしたか?
0. オブジェクト定数ではなく、グローバル空間に配列を定数を定義する積極的なメリットはあるか  
---
ちなみにこちらのコードは、PHP5.6, PHP7 両方の環境で動作しました。
```php
<?php
class SAMPLE
{
   const ARR = ['a', 'b', 'c'];
}
var_dump(SAMPLE::ARR[0]);
```
  • PHP

    29181 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • 配列

    1095 questions

    配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

1 追記

Kosuke_Shibuya

Kosuke_Shibuya score 20775

2016/09/17 05:01  投稿

PHP7新機能・定数に配列を定義
先日こちらのページ [PHPマニュアル > 付録 > 変更履歴](https://secure.php.net/manual/ja/doc.changelog.php) を眺めていたときに、
![イメージ説明](c9c0497bba453137da1386d3227beea7.png)
「define() に配列を定義できるようになった」と記述されており、
[define](https://secure.php.net/manual/ja/function.define.php)
![イメージ説明](c3c46c3938532115ff29c4ee35f6758d.png)
実際に以下のコードで試したところ
```php
<?php
define('ARRAY_SAMPLE_01', ['a', 'b', 'c']);
define('ARRAY_SAMPLE_02', ['a' => 100, 'b' => 200, 'c' => 300]);
var_dump(ARRAY_SAMPLE_01);
var_dump(ARRAY_SAMPLE_01[0]);
var_dump(ARRAY_SAMPLE_02);
var_dump(ARRAY_SAMPLE_02['b']);
```
確かに動くのですが、いったいどんな場面で使えばいいの?というのが疑問です。
そもそも定数に定義できるのはスカラー値であるというルールのもとで利用していたので、配列を定義したいと思ったことがありません。
そこで質問なのですが、
0. これまで定数に配列を定義したいと思ったことがありますか?
0. また、それはどんなケースでしたか?
0. また、それはどんなケースでしたか?
---
ちなみにこちらのコードは、PHP5.6, PHP7 両方の環境で動作しました。
```php
<?php
class SAMPLE
{
   const ARR = ['a', 'b', 'c'];
}
var_dump(SAMPLE::ARR[0]);
```
  • PHP

    29181 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • 配列

    1095 questions

    配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る