PHP数组语法/运算符?
Posted
技术标签:
【中文标题】PHP数组语法/运算符?【英文标题】:PHP array syntax/operator? 【发布时间】:2011-09-24 12:56:43 【问题描述】:在 php 中编写关联数组的语法时,我们执行以下操作
$a = array('foo' => 'bar');
我很好奇=>
语法的关系,或者可能是运算符。这是否与 ZE 中哈希表中使用的某种引用有关,或者与C
中使用的某种后续右移或引用有关?我想我只是想知道这种语法的真正潜在目的,它与用于处理数组的 ZE 和/或 php 扩展有何关系,它与编译前C
中的书面函数有何关系,或者如果我没有明白我在说什么:)
【问题讨论】:
这只是key => value
运算符。当您需要键以及要循环的数组的值时,它也用于 foreach 循环。在 javascript 中,等价于 var a = foo: 'bar'
。
【参考方案1】:
答案并不比“它看起来像一个箭头”更简单。 这不完全是每个说的赋值运算符,因为这意味着类似变量的赋值(就像数组本身一样)。这是一个特定于数组内部的赋值运算符。
Web 开发人员就是那样酷:P
【讨论】:
你知道在用于“存储”数组的哈希表中与 this 的关系吗? 我没有看到任何关系,尽管这绝对不意味着没有关系。但是请相信我,不要像 C 一样使用 PHP。C 很漂亮。 PHP 是 hack-patchy-get-the-job-done。你问的是一个典型的例子,说明 PHP 有时看起来很奇怪。 呵呵,我们都用“它看起来像一个箭头”+1 ;)【参考方案2】:=>
符号又名T_DOUBLE_ARROW
只是一个解析器标记,如class
、||
或::
。
See: The list of php parser tokens
除了"it looks like an arrow"
和它用于"array stuff"
之外,没什么特别的。
当然,确切的用法比这更复杂,但"array stuff"
是应该这样做的简短不准确的描述。
用来表示key
=> (points to
) value
【讨论】:
"=> 符号又名 T_DOUBLE_ARROW 只是一个解析器标记,如 = 或 ||。"这更多是我想要的。我想现在我只需要研究关联数组是如何存储在哈希表中的。 @Headspin 在谈论 php 哈希表时,您要查找的词通常是zval
。在 php 中,几乎所有内容都是一个哈希表,但变量存储在所谓的 zvals 中。
谢谢。我实际上正在研究编写一些 PHP 扩展的艰巨任务,这正是导致我提出这个问题的原因。在专门阅读 zvals 时,哈哈。以上是关于PHP数组语法/运算符?的主要内容,如果未能解决你的问题,请参考以下文章