PHP期望T_PAAMAYIM_NEKUDOTAYIM?
有没有人有T_PAAMAYIM_NEKUDOTAYIM
?
这是双冒号运算符::
:(请参阅parsing器令牌列表 )。
Google创造奇迹。
这是“双冒号”的希伯来语 。
这是PHP中的::
运算符的名称。 它的字面意思是“双冒号”。 出于某种原因,他们用希伯来语命名。 检查你的代码语法,并在适当的地方放一个::
🙂
维基百科 :
在PHP中,范围parsing运算符也被称为Paamayim Nekudotayim(希伯来语:פעמייםנקודתיים),意思是希伯来语中的“双冒号”。
“Paamayim Nekudotayim”这个名字是在以色列开发的用于PHP 3的Zend Engine 0.5中引入的。尽pipe许多不懂希伯来语的开发者一直对此感到困惑,但它仍然在PHP 5中使用,正如这个示例错误消息:
$ php -r ::parsing错误:语法错误,意外的T_PAAMAYIM_NEKUDOTAYIM
从PHP 5.4开始,关于范围parsing操作符的错误消息仍然包含这个名字,但是已经澄清了它的含义:
$ php -r ::parsing错误:语法错误,意外的'::'(T_PAAMAYIM_NEKUDOTAYIM)
从官方的PHP文档 :
范围parsing运算符(也称为Paamayim Nekudotayim)或简单地说,双冒号是允许访问类的静态,常量和重写属性或方法的标记。
从类定义的外部引用这些项时,请使用类的名称。
从PHP 5.3.0开始,可以使用variables来引用类。 variables的值不能是关键字(例如self,parent和static)。
起初,Paamayim Nekudotayim似乎是一个命名双冒号的奇怪select。 但是,在编写Zend引擎0.5(支持PHP 3)时,这就是Zend团队决定称之为的。 这实际上意味着双冒号 – 希伯来语!
在PHP中将常量应用于empty()函数时,也会出现这种情况:
if (!empty(SOME_CONSTANT)) { }
那是我的情况。 我解决了这个问题:
$string = SOME_CONSTANT; if (!empty($string)) { }
对我来说,这发生在一个类的function。
在PHP 5.3和以上$this::$defaults
工作正常; 当我把代码换成一个服务器,无论出于何种原因,有一个较低的版本号,它抛出了这个错误。
在我的情况下,解决scheme是使用关键字self
而不是$this
:
self::$defaults
工作得很好。
这是我得到它。 我用双引号试了一下expression式的限制。 所以这是代码:
码
$a = 5; echo "{$a == 5 ? 'yes' : 'no'} its possible";
产量
PHP Parse error: syntax error, unexpected '==' (T_IS_EQUAL), expecting :: (T_PAAMAYIM_NEKUDOTAYIM) in php shell code on line 1