php类常量调用$this::CONST

php类常量调用$this::CONST,php,oop,constants,Php,Oop,Constants,为什么我可以从动态声明中调用类常量? 此代码运行良好: echo $this::CONST; 是不是错了?来自 从动态声明调用常量与从类调用常量一样有效为什么它是错误的?常量可以通过多种方式访问。这是其中之一。看到你把常量和私有变量混在一起了吗(我知道这一点),但是从动态环境调用常量是正确的吗?)常量只是一个在类声明中不会改变的值,因此该类的每个实例都会将该常量与其值混在一起。从实例调用它没有问题:)不是问题。代码设计中的问题。我在一个开发人员的代码中找到$this::CONST,笑着说:

为什么我可以从动态声明中调用类常量? 此代码运行良好:

echo $this::CONST;
是不是错了?

来自



从动态声明调用常量与从类调用常量一样有效

为什么它是错误的?常量可以通过多种方式访问。这是其中之一。看到你把常量和私有变量混在一起了吗(我知道这一点),但是从动态环境调用常量是正确的吗?)常量只是一个在类声明中不会改变的值,因此该类的每个实例都会将该常量与其值混在一起。从实例调用它没有问题:)不是问题。代码设计中的问题。我在一个开发人员的代码中找到$this::CONST,笑着说:)我想,这很难看),因为我过去常常像在手册中那样设计代码,但不是我喜欢的方式
<?php
class MyClass
{
    const CONSTANT = 'constant value';

    function showConstant() {
        echo  self::CONSTANT . "\n";
    }
}

echo MyClass::CONSTANT . "\n";

$classname = "MyClass";
echo $classname::CONSTANT . "\n"; // As of PHP 5.3.0

$class = new MyClass();
$class->showConstant();

echo $class::CONSTANT."\n"; // As of PHP 5.3.0
?>