【问题标题】:Accessing a CONST attribute of series of Classes访问一系列类的 CONST 属性
【发布时间】:2010-09-05 13:10:49
【问题描述】:

这就是我想要在 PHP 5.3.0+ 中工作的方式

<?php
    class MyClass
    {
        const CONSTANT = 'Const var';        
    }

    $classname = 'MyClass';
    echo $classname::CONSTANT; // As of PHP 5.3.0
?>

但我仅限于使用 PHP 5.2.6。谁能想到一个简单的方法来模拟这种行为而不实例化类?

【问题讨论】:

    标签: php oop


    【解决方案1】:

    您无需在 5.3 之前的代码中使用 eval 即可完成此操作。只需使用constant 函数:

    <?php
    
    class MyClass
    {
        const CONSTANT = 'Const var';
    }
    
    $classname = 'MyClass';
    echo constant("$classname::CONSTANT");
    
    ?>
    

    【讨论】:

      【解决方案2】:

      如果你绝对需要访问这样的常量,你可以这样做:

      <?php
      class MyClass
      {
              const CONSTANT = 'Const var';
      }
      
      $classname = 'MyClass';
      echo eval( 'return '.$classname.'::CONSTANT;' );
      ?>
      

      但是,如果我是你,我会尽量不使用 eval。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-22
        相关资源
        最近更新 更多