有人有T_PAAMAYIM_NEKUDOTAYIM吗?


当前回答

这只是发生在我的foreach循环。我无意中键入($array as $key as $value), PHP反对第一个as。

其他回答

这可能发生在foreach时使用:

foreach( $array as $key = $value )

而不是

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

它是PHP中::操作符的名称。它的字面意思是“双冒号”。出于某种原因,他们用希伯来语命名它。检查你的代码语法,在适当的地方放一个::

这只是发生在我的字符串赋值使用双引号。我在一个POST变量上缺少一个右花括号…

" {$_POST['txtName']在$date";

应该是

{$_POST['txtName']} on $date";

我不能解释为什么。我的意思是,我看到了会破坏代码的错误,但我不明白为什么它引用了类错误。

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

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

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

if (!empty(SOME_CONSTANT)) {

}

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

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

}