因此,我将旧的开发人员Perl脚本翻译成了另一个奇怪的地方 面向对象的PHP,这个小小的Perl引用语句让我抓狂了 很长一段时间,但我无法通过谷歌或朋友解决这个问题。
我已经尽力写出我认为的意思,但不确定是不是 对。有人能告诉我,如果我弄明白或者我是否已经离开?提前谢谢。
perl片段是:
!$state->{$msg->{hash}}
我认为这意味着OO PHP中的其中两个?
!$this->state[$this->msg['hash']] //or?
$this->state != $this->msg['hash']
我甚至在球场吗?
UPDATE 我被告知这是一个有参考,而不是数组参考,但我不确定,因为$ msg-> {gray},$ msg-> {hash},$ msg-> {domain}等都存在于同一个子?
答案 0 :(得分:1)
实际上,第二眼看来,$state
是某种哈希引用(虽然它也可能是某个类的bless
ed对象),$state->{$msg->{hash}}
是值%$state
对应于键$msg->{hash}
(其中,%$msg
的值对应于键"hash"
)。
因此,假设$state
和$msg
只是哈希引用(而不是特定对象),它们实际上对应于PHP中的数组(关于PHP的一个非常愚蠢的事情就是没有数组和关联数组之间的差异。)
因此,在PHP中它将是!$state[$msg['hash']]
。