首页 文章

PHP期望T_PAAMAYIM_NEKUDOTAYIM?

提问于
浏览
468

有谁有 T_PAAMAYIM_NEKUDOTAYIM

8 回答

  • 42

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

  • 0

    谷歌创造奇迹 .

    对于"double colon"来说是Hebrew .

  • 0

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

  • 2

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

  • 302

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

    if (!empty(SOME_CONSTANT)) {
    
    }
    

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

    $string = SOME_CONSTANT;
    if (!empty($string)) {
    
    }
    
  • 95

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

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

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

    self::$defaults 工作得很好 .

  • 52

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

    代码

    $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
    
  • 8

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

    foreach( $array as $key = $value )
    

    代替

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

相关问题