将Perl引用转换为OO PHP


Translating a Perl reference to OO PHP?

所以在将旧的开发人员Perl脚本翻译成面向对象的PHP,这个小小的Perl参考语句让我摸不着头脑我已经想了很长一段时间了,但我还没有通过谷歌或朋友找到答案。

我已经尽力写出我认为它的意思,但我不确定它是否是正确的。谁能告诉我是我弄明白了还是我搞错了?谢谢。

perl代码片段是:

!$state->{$msg->{hash}}

我相信它的意思是在OO PHP中这两个中的一个?

!$this->state[$this->msg['hash']] //or?
$this->state != $this->msg['hash']

我说得对吗?

UPDATE我被告知这是一个has引用,而不是一个数组引用,但我不确定,因为$msg->{grey}, $msg->{hash}, $msg->{domain}等都存在于同一子?

实际上,再看一眼,$state是某种哈希引用(尽管它也可能是某个类的bless ed对象),$state->{$msg->{hash}}%$state对应于键$msg->{hash}的值(反过来,%$msg对应于键"hash"的值)。

因此,假设$state$msg只是散列引用(而不是特定对象),它们实际上对应于PHP中的数组(PHP中真正愚蠢的事情之一是数组和关联数组之间没有区别)。

在PHP中应该是!$state[$msg['hash']]