2011-06-28 13 views
1

私たちは、私が=>構文、または多分オペレータの関係の好奇心PHP配列の構文/演算子ですか?

$a = array('foo' => 'bar'); 

次の操作を行いPHPで連想配列の構文を書きます。これは、ZEのハッシュテーブルで使用される何らかの種類の参照、またはCで使用される何らかの種類の後続の右シフトまたは参照に関連していますか?私はちょうど、コンパイルする前にCの書かれた関数に関連する可能性がどのようにZEおよび/またはPHPの拡張機能に関連する、この構文の真の根底にある目的を疑問に思っていますか?私は話している:

+0

を表すために使用されます。これは、あなたがループしている配列の値だけでなくキーの値が必要なときにも、foreachループでも使用されます。 Javascriptでは、等価は 'var a = {foo: 'bar'}'となります。 –

答えて

6

=>シンボルとしても知られT_DOUBLE_ARROWclass||または::のようなちょうどパーサトークンです。

See: The list of php parser tokens

それは離れて"it looks like an arrow"、それが"array stuff"のために使用されているという事実から、特別な何もありません。

正確な使用法はそれよりも複雑ですが、"array stuff"はそれを行うべきである正確でない短い説明です。

ちょうど `キー=> [値]オペレータのkey=>points tovalue

+1

"=>記号a.k.a. T_DOUBLE_ARROWは単に=または||のようなパーサートークンです。"これは私が探していたものの多くです。私は今、連想配列がハッシュテーブルにどのように格納されるかを調べるだけでいいと思います。 – grep

+0

@Headspin通常、PHPのハッシュテーブルについて話しているときに探している言葉は 'zval'です。 PHPではほとんどすべてがハッシュテーブルですが、変数はいわゆるzvalに格納されています。 – edorian

+0

有益な編集をありがとう!ありがとうございます。 – grep

4

それは "それは矢印のように見える"より簡単ではありません。 変数のような代入(配列そのもののような)を意味するので、sayごとの代入演算子は正確にはありません。これは配列内部固有の代入演算子です。

Webdevelopersはそのようにクールです:P

+0

配列を格納するために使用されるハッシュテーブル内で、これとの関係を知っていますか? – grep

+0

私はどんな関係も見ませんが、確かにそれがないというわけではありません。 しかし、これを信じて、CのようなPHPを使わないでください。Cは美しいです。 PHPはhack-patchy-get-the-job-doneです。 あなたが尋ねたのは、奇妙なPHPがどのように見えるかという古典的な例です。 – Angad

+0

hehe、我々は両方とも "それは矢印のように見える" +1;) – edorian