有人有T_PAAMAYIM_NEKUDOTAYIM吗?


当前回答

希伯来语是"双冒号"的意思。

其他回答

编辑:不幸的是,从PHP 8.0开始,答案不再是“不,不再是”。这个RFC没有像我希望的那样被接受,建议将T_PAAMAYIM_NEKUDOTAYIM改为T_DOUBLE_COLON;但它被拒绝了。

注意:我保留这个答案是为了历史目的。实际上,由于RFC的创建和某些时候的投票比例,我创建了这个答案。另外,我保留这个,希望它在不久的将来被接受。

我很懂希伯来语,所以为了澄清“Paamayim Nekudotayim”这个名字,转述的意思是“双冒号”,但按字面翻译:

"Paamayim"的意思是"两个"或"两次" “Nekudotayim”的意思是“点”(点亮)。“洞”) 在希伯来语中,nekuda的意思是一个点。 复数形式是nekudot,即圆点,它的作用是元音 它被称为Nekudo-tayim的原因是因为后缀“-ayim”也意味着“两次”或“两次”,因此::表示“两次,两个点”,或更常见的范围解析操作符。

这可能发生在foreach时使用:

foreach( $array as $key = $value )

而不是

foreach( $array as $key => $value )

对我来说,这发生在一个类函数中。

在PHP 5.3及以上版本中,$this::$默认值工作正常;当我把代码交换到一个服务器上时,不管出于什么原因,这个服务器的版本号更低,它抛出了这个错误。

解决方案,在我的情况下,是使用关键字self而不是$this:

Self::$defaults工作得很好。

当你在PHP中对empty()函数应用常量时,也会出现这种情况:

if (!empty(SOME_CONSTANT)) {

}

那是我的案子。我用这个方法解决了这个问题:

$string = SOME_CONSTANT;
if (!empty($string)) {

}