有谁有 T_PAAMAYIM_NEKUDOTAYIM ?
T_PAAMAYIM_NEKUDOTAYIM
它是双冒号运算符::(参见list of parser tokens) .
谷歌创造奇迹 .
对于"double colon"来说是Hebrew .
它是PHP中 :: 运算符的名称 . 字面意思是"double colon" . 出于某种原因,他们用希伯来语命名 . 检查你的代码语法,并在适当的地方放一个 :: :-)
::
来自Wikipedia:
在PHP中,范围解析运算符也称为Paamayim Nekudotayim(希伯来语:פעמייםנקודתיים),这意味着希伯来语中的“双冒号” . “Paamayim Nekudotayim”这个名字是在以色列开发的PHP 3中使用的Zend Engine 0.5中引入的 . 尽管许多不会说希伯来语的开发人员对它感到困惑,但它仍然在PHP 5中使用,如此示例错误消息:$ php -r :: Parse错误:语法错误,意外T_PAAMAYIM_NEKUDOTAYIM从PHP 5.4开始,有关范围解析运算符的错误消息仍然包含此名称,但在某种程度上澄清了它的含义:$ php -r :: Parse error:syntax error ,意外的'::'(T_PAAMAYIM_NEKUDOTAYIM)
来自the official PHP documentation:
范围解析运算符(也称为Paamayim Nekudotayim)或简单来说,双冒号,是一个允许访问类的静态,常量和重写属性或方法的标记 . 从类定义外部引用这些项时,请使用类的名称 . 从PHP 5.3.0开始,可以使用变量引用该类 . 变量的值不能是关键字(例如self,parent和static) . 起初,Paamayim Nekudotayim似乎是一个命名双结肠的奇怪选择 . 然而,在编写Zend Engine 0.5(支持PHP 3)时,这就是Zend团队决定称之为的东西 . 它实际上意味着双冒号 - 希伯来语!
将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
这就是我得到它的方式 . 我在双引号中尝试表达式的限制 . 所以这是代码:
$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
使用时,这可能发生在foreach上:
foreach( $array as $key = $value )
代替
foreach( $array as $key => $value )
8 回答
它是双冒号运算符::(参见list of parser tokens) .
谷歌创造奇迹 .
对于"double colon"来说是Hebrew .
它是PHP中
::
运算符的名称 . 字面意思是"double colon" . 出于某种原因,他们用希伯来语命名 . 检查你的代码语法,并在适当的地方放一个::
:-)来自Wikipedia:
来自the official PHP documentation:
将PHP中的常量应用于empty()函数时也会出现这种情况:
那是我的情况 . 我用这个来解决它:
对我来说,这发生在一个类函数中 .
在PHP 5.3及以上
$this::$defaults
工作正常;当我将代码交换到服务器时,无论出于何种原因它都有较低的版本号,它就抛出了这个错误 .在我的例子中,解决方案是使用关键字
self
而不是$this
:self::$defaults
工作得很好 .这就是我得到它的方式 . 我在双引号中尝试表达式的限制 . 所以这是代码:
代码
输出
使用时,这可能发生在foreach上:
代替