11

基本的なJavascript関数をPHPに変換しようとしましたが、変数の1つが宣言されていることがわかりvar Variable = new Array (13)ました。

PHP変数が次のように宣言されていることを私は知っています:$variable = array()

しかし、の「13」はnew Array(13)どうですか?それは何に変換され$variable = array(13)ますか?私はそれを試しましたが、うまくいかなかったようです。

これはJavascriptで

var results = new Array (13);

PHPでこれになります、私は正しいですか?

$results = array(13);
4

5 に答える 5

16

実際、このコンテキストでは、サイズの配列を作成しています13

PHPで配列を事前に割り当てる必要はありませんが、次のようなことができます。

$result = array_fill( 0, 12, null);

これにより、値が。である13個の要素(インデックス0から12)を持つ配列が作成されますnull

于 2012-07-09T22:59:07.780 に答える
7

SplFixedArrayまた、固定サイズのアレイ用があることに注意してください

$array = new SplFixedArray(5);

http://php.net/manual/en/class.splfixedarray.php

于 2012-07-09T23:01:26.530 に答える
5

new Array(someNumber)someNumberJSでは、である要素を含む配列を作成しますundefined。構文があいまいではなく、引数の数とタイプによって動作が異なるため、常に[...]いくつかの要素を含む配列を作成するために使用する必要がある場合を除きます。new Array()

array(13)ただし、PHPでは、単一の値を含む配列を作成します13

PHPのほぼ同様の関数はですarray_fill(0, 12, null)。ただし、PHPは空の配列を割り当ててから、それを埋めながら拡張する場合があります。

于 2012-07-09T22:59:05.857 に答える
1

これにより、13個の未定義の値を持つ配列が作成されます。

var results = new Array (13);

これにより、最初のインデックス(インデックス0)が13に等しい配列が作成されます。

$results = array(13);

ですから、それは正しくありません。javascriptと同じ結果が必要な場合は、次のようにします。

$results = array_fill(0, 13, '');

この質問も確認してください。

事前定義されたサイズでPHPで空の配列を作成するにはどうすればよいですか?

于 2012-07-09T23:03:58.630 に答える
1

いいえ、PHPの括弧内に数値を入れると、int 13という1つの値が配列に追加されます。一方、括弧内のJSの数値は、その数の未定義の値を持つ配列を作成します。

PHPの配列は動的であるため、JSで時々行うようにサイズを宣言する必要はありません。

于 2012-07-09T22:58:58.480 に答える