PHP期望T_PAAMAYIM_NEKUDOTAYIM?

有谁有 T_PAAMAYIM_NEKUDOTAYIM

回答(8)

2 years ago

它是双冒号运算符::(参见list of parser tokens) .

2 years ago

谷歌创造奇迹 .

对于"double colon"来说是Hebrew .

2 years ago

它是PHP中 :: 运算符的名称 . 字面意思是"double colon" . 出于某种原因,他们用希伯来语命名 . 检查你的代码语法,并在适当的地方放一个 :: :-)

2 years ago

来自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团队决定称之为的东西 . 它实际上意味着双冒号 - 希伯来语!

2 years ago

将PHP中的常量应用于empty()函数时也会出现这种情况:

if (!empty(SOME_CONSTANT)) {

}

那是我的情况 . 我用这个来解决它:

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

}

2 years ago

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

在PHP 5.3及以上 $this::$defaults 工作正常;当我将代码交换到服务器时,无论出于何种原因它都有较低的版本号,它就抛出了这个错误 .

在我的例子中,解决方案是使用关键字 self 而不是 $this

self::$defaults 工作得很好 .

2 years ago

这就是我得到它的方式 . 我在双引号中尝试表达式的限制 . 所以这是代码:

代码

$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

2 years ago

使用时,这可能发生在foreach上:

foreach( $array as $key = $value )

代替

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