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数组语法/运算符?的主要内容,如果未能解决你的问题,请参考以下文章

每天一题PHP中常用的数组操作方法笔记整理

“[]”运算符的名称是啥?

PHP基本语法变量数据类型运算符流程控制

php.ini 中的按位运算符语法错误

php语法基础3

2.PHP基本语法__常量运算符