有人有T_PAAMAYIM_NEKUDOTAYIM吗?
T_PAAMAYIM_NEKUDOTAYIM
它是双冒号操作符::(参见解析器令牌列表)。
::
“双冒号”是希伯来语。
它是PHP中::操作符的名称。它的字面意思是“双冒号”。出于某种原因,他们用希伯来语命名它。检查你的代码语法,在适当的地方放一个:::-)
从# EYZ0:
在PHP中,作用域解析操作符也被称为Paamayim Nekudotayim(希伯来语:פעמייםנקודתיים),这意味着“双冒号” 希伯来语。< / p > “Paamayim Nekudotayim”的名字是在 以色列开发的Zend Engine 0.5,用于PHP 3。尽管它已经 对于许多不懂希伯来语的开发者来说,它仍然是一个谜 在PHP 5中使用,如示例错误消息: $ php::解析错误:语法错误,意外 T_PAAMAYIM_NEKUDOTAYIM < / p > 从PHP 5.4开始,有关范围解析操作符的错误消息 还包括这个名字,但有点澄清了它的意思: $ php -r::解析错误:语法错误,意外的'::' (T_PAAMAYIM_NEKUDOTAYIM) < / p >
“Paamayim Nekudotayim”的名字是在 以色列开发的Zend Engine 0.5,用于PHP 3。尽管它已经 对于许多不懂希伯来语的开发者来说,它仍然是一个谜 在PHP 5中使用,如示例错误消息:
$ php::解析错误:语法错误,意外 T_PAAMAYIM_NEKUDOTAYIM < / p > 从PHP 5.4开始,有关范围解析操作符的错误消息 还包括这个名字,但有点澄清了它的意思:
$ php -r::解析错误:语法错误,意外的'::' (T_PAAMAYIM_NEKUDOTAYIM) < / p >
范围解析运算符(也称为Paamayim Nekudotayim)或in 简单来说,双冒号是允许访问的标记 类的静态、常量和重写的属性或方法 当从类定义外部引用这些项时,使用 类的名称 从PHP 5.3.0开始,可以使用a来引用类 变量。变量的值不能是关键字(例如self, parent) 和静态)。< / p > Paamayim Nekudotayim乍一看是一个奇怪的选择 命名双冒号。然而,在编写Zend Engine 0.5时 (支持PHP 3),这就是Zend团队决定给它起的名字。它 实际上在希伯来语中是双冒号的意思!< / p >
范围解析运算符(也称为Paamayim Nekudotayim)或in 简单来说,双冒号是允许访问的标记 类的静态、常量和重写的属性或方法
当从类定义外部引用这些项时,使用 类的名称
当你在PHP中对empty()函数应用常量时,也会出现这种情况:
if (!empty(SOME_CONSTANT)) { }
那是我的案子。我用这个方法解决了这个问题:
$string = SOME_CONSTANT; if (!empty($string)) { }
对我来说,这发生在一个类函数中。
在PHP 5.3及以上$this::$defaults工作正常;当我把代码交换到一个服务器上时,不管出于什么原因,这个服务器的版本号更低,它抛出了这个错误。
$this::$defaults
解决方案,在我的情况下,是使用关键字self而不是$this:
self
$this
self::$defaults工作得很好。
self::$defaults
这可能发生在foreach时使用:
foreach( $array as $key = $value )
而不是
foreach( $array as $key => $value )
我很懂希伯来语,所以为了澄清“Paamayim nekudotayim”这个名字;对你来说,转述的意思是“双冒号”,但按字面翻译:
编辑:不幸的是,从PHP 8.0开始,答案是不是“不,不再是”。这RFC没有像我希望的那样被接受,建议将T_PAAMAYIM_NEKUDOTAYIM改为T_DOUBLE_COLON;但它被拒绝了。
T_DOUBLE_COLON
请注意:我保留这个答案是为了历史的目的。实际上,由于RFC的创建和某些时候的投票比例,我创建了这个答案。另外,我保留这个,希望它在不久的将来被接受。
这只是发生在我的字符串赋值使用双引号。我在一个POST变量上缺少一个右花括号…
# EYZ0;
应该是
我不能解释为什么。我的意思是,我看到了会破坏代码的错误,但我不明白为什么它引用了类错误。
这只是发生在我的foreach循环。我无意中输入了($array as $key as $value), PHP反对第一个as。
($array as $key as $value)
as