代码之家  ›  专栏  ›  技术社区  ›  Peter Turner

PHP希望T_PAAMAYIM_NEKUDOTAYIM?

  •  478
  • Peter Turner  · 技术社区  · 15 年前

    有人有电话吗 T_PAAMAYIM_NEKUDOTAYIM ?

    8 回复  |  直到 9 年前
        1
  •  363
  •   Nikola Miljković    7 年前

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

        2
  •  118
  •   Cody Gray    4 年前

    它是 Hebrew 用于“双冒号”。

        3
  •  57
  •   Peter Mortensen Abd Al-Kareem Attiya    9 年前

    这是一个名字 :: :: 在适当情况下:-)

        4
  •  52
  •   John Slegers    9 年前

    从…起 Wikipedia

    在PHP中,作用域解析操作符也称为Paamayim Nekudotayim(希伯来语:×·××××××××ק××××××××××),意为双冒号 希伯来语。

    “Paamayim Nekudotayim”这个名字是在 以色列开发了用于PHP3的Zend引擎0.5。虽然已经 对于许多不会说希伯来语的开发人员来说,这仍然是一个令人困惑的问题

    $php-r::解析错误:语法错误,意外 托帕马伊姆·内库多塔伊姆

    从PHP5.4开始,关于范围解析操作符的错误消息 仍然包括该名称,但在某种程度上澄清了其含义:

    (T_PAAMAYIM_NEKUDOTAYIM)

    the official PHP documentation :

    范围解析运算符(也称为Paamayim-Nekudotayim)或 类的静态、常量和重写属性或方法。

    从类定义外部引用这些项时,请使用

    从PHP5.3.0开始,可以使用 变量变量的值不能是关键字(例如self、parent 和静态)。

    Paamayim Nekudotayim一开始似乎是一个奇怪的选择 命名双冒号。但是,在编写Zend引擎0.5时

        5
  •  14
  •   Peter Mortensen Abd Al-Kareem Attiya    9 年前

    if (!empty(SOME_CONSTANT)) {
    
    }
    

    这就是我的情况。我用这个解决了这个问题:

    $string = SOME_CONSTANT;
    if (!empty($string)) {
    
    }
    
        6
  •  12
  •   Sapphire_Brick eapolinario    3 年前

    我很懂希伯来语,所以为了给你澄清“Paamayim Nekudotayim”这个名字,释义为“双冒号”,但按字面翻译:

    • “Paamayim”是指“两次”或“两次”
      • 在希伯来语中,一个 意思是一个点。
      • 复数是 内库多特 ,即作为元音的点
      • 它被称为Nekudo的原因- 塔伊姆 因为后缀“-ayim”也意味着“两次”或“两次”,因此 :: Scope Resolution Operator .
        7
  •  3
  •   GDY    6 年前

    当使用以下工具时,这可能发生在foreach上:

    foreach( $array as $key = $value )
    

    foreach( $array as $key => $value )
    
        8
  •  2
  •   MAChitgarha    4 年前

    编辑 “不,不再是了”。 This RFC 没有像我希望的那样被接受,提议改变 T_PAAMAYIM_NEKUDOTAYIM T_DOUBLE_COLON ; 但它被拒绝了。

    笔记

        9
  •  1
  •   bozdoz    8 年前

    在PHP5.3及以上版本中 $this::$defaults 工作很好;当我将代码交换到一个服务器时,无论出于何种原因,该服务器的版本号较低,它都会抛出此错误。

    self 而不是 $this :

    self::$defaults

        10
  •  0
  •   Mark Cicchetti    4 年前

    这在使用双引号的字符串赋值中发生。我在POST变量上缺少一个结束卷曲。。。

    "for {$_POST['txtName'] on $date" ;

    应该是

    "for {$_POST['txtName']} on $date" ;

    我无法解释为什么。我的意思是,我看到了会破坏代码的错误,但我不明白为什么它引用了类错误。

        11
  •  -2
  •   Chris Dueck Thomas Murphy    4 年前

    这在foreach循环中发生在我身上。我不小心打字了 ($array as $key as $value) PHP反对第一个 as .