CONST在PHP中几乎没用

时间:2014-10-04 01:27:43

标签: php const

我已经阅读了我在这个问题上可以找到的内容,但我对于缺乏替代方案感到非常困惑。如果你有一个PHP的OOP项目,使用consts就像它可以获得的那样丑陋。这是问题所在:

class Invisible {
   CONST youCantSeeMe = "";
}

class Ugly {
    $invisible;
    static $invisible2;

    function __construct() {
       $this->$invisible = new Invisible();
       self::$invisible2 = New Invisible();

       $this->invisible::youCantSeeMe; (illegal, crashes project)
       self::$invisible2::youCantSeeMe; (illegal, crashes project)
    }

   function uglyFunction() {
      //this is the only, ugly way to do it
      $invisible = $this->invisible;
      $invisible::youCantSeeMe (this works)
   }
}

我发现它的唯一另一种方法是为你拥有的每个const做一个公共的获取(繁琐,浪费时间),或者使用反射类(昂贵的)使用魔法__get。

有比这些选择更好的方法吗?

1 个答案:

答案 0 :(得分:1)

我认为您的投诉与incomplete dereferencing support非常相关。

  

::只接受左侧的简单参考变量

这已在PHP 7中实现的Uniform Variable Syntax RFC中修复。