2009-03-18 2 views
4

なぜPHPでこれと同等の何かをすることはできません。問題が

(Array(0))[0]; 

これは単に議論のためですが、それは匿名オブジェクトのアクセスを許可していない奇妙なよう。私は次のような何かをしなければならないでしょう:

$array = Array(0); 
$array[0]; 

これはなぜPHPの動作ですか?

+0

うわー、それは私をPHP4で怒らせました。彼らはまだそれを修正していない – derobert

答えて

4

これについてはもう少し詳しく説明していますが、かなり洞察力があったので、ブックマークしないのは残念です。 「現在のステートメント(行)がフルに実行するまでの配列がメモリ内に存在していないので(セミコロンに達した)」しかし、それは

の線に沿って何かだ

だから、基本的に、あなただけです配列を定義します。実際には作成されず、次の行まで読み込み/アクセスが可能です。

私は 希望これは幾分正確に私が何ヶ月も前に読んで漠然と覚えていることを要約します。
+1

あなたは覚えていない恥ずかしいURL – Jotham

1

私は短い答えがあると思います:誰もまだそれをコード化していません。私はPythonとJavascriptの両方でその構文を使用しましたが、それでもPHPを待っています。

0

主な理由は、PythonやJavaScriptなど一部の言語と異なり、Array()(または実際はarray())はオブジェクトではなく、組み込みデータ型を作成する言語構造体です。 組み込みデータ型自体もオブジェクトではなく、array()構造体は「オブジェクト」への参照を返しませんが、実際の値そのものを変数に割り当てることができます。