web-dev-qa-db-ja.com

配列の省略形:{}や[]のようなリテラル構文はありますか?

PHPの配列表記の省略形は何ですか?

私は使用しようとしました(動作しません):

$list = {};

PHPの他の略記法に関する情報へのリンクを提供すれば、完璧です。

81
James

更新:
PHP 5.4.0 a 短縮された構文 配列を宣言するための導入:

_$list = [];
_

前の回答:

ありません。 $list = array();のみですが、要素の追加を開始できます。

_<?php
$list[] = 1;
$list['myKey'] = 2;
$list[42] = 3;
_

PHPに関する限り、完全に問題ありません。 未定義変数のE_NOTICE も取得できません。

E_NOTICEレベルエラーは、初期化されていない変数を操作する場合に発行されますが、初期化されていない配列に要素を追加する場合は発行されません。

速記法については、至る所に散らばっています。それらを見つけたい場合は The Manual を読んでください。

あなたの娯楽のためのいくつかの例:

  1. _$arr[]_ _array_Push_の短縮形。
  2. foreachコンストラクト
  3. _echo $string1, $string2, $string3;_
  4. _+_との配列連結
  5. elseifの存在
  6. 文字列に埋め込む変数、_$name = 'Jack'; echo "Hello $name";_
126
Alin Purcaru

はい、存在します!!

別のStack Overflow質問から抽出:

配列の短縮構文は再検討され、受け入れられ、現在PHP 5.4でリリースされています

使用法:

$list = [];

リファレンス: PHP 5.4配列のショートハンド

43
AgelessEssence

次のように[]内のコンテンツを定義することもできます。

  $array = ['vaue1', 'value2', 'key3'=>['value3', 'value4']];

これはphp5.4以降でのみ機能します。

28
Dieter Gribnitz
5
Matthew

いいえ、それはコミュニティによって提案され、拒否されたため、現在のところ配列の構文のみ array() です。

4
StasM

PHPで配列を定義する唯一の方法は、 array() 言語構成によるものです。 PHPには、他のいくつかの言語のように配列リテラルの省略形がありません。

3

文字列を次のように配列に展開します。

$array = explode(",","0,1,2,3,4,5,6,7,8,9,10");
2
Damien Golding

次のように配列を宣言できます。

$myArray1 = array(num1, num2, num3);
$myArray2 = array('string1', 'string2', 'string3');
$myArray3 = array( 'stringkey1'=>'stringvalue1', 'stringkey2'=>'stringvalue2');
$myArray4 = array( 'stringkey1'=>numValue1, 'stringkey2'=>numValue2);
$myArray5 = array( numkey1=>'stringvalue1', numkey2=>'stringvalue2');
$myArray6 = array( numkey1=>numValue1, numkey2=>numValue2);

必要な数の埋め込み配列を使用できます。

2
user3231257