没有`new`关键字实例化PHP类?

时间:2017-07-12 02:43:23

标签: php

我习惯使用new关键字,所以我很惊讶地发现以下内容也适用于实例化。

class MyClass
{
    const CONSTANT = 'constant value';

    function showConstant() {
        echo  self::CONSTANT;
    }
}

// $classname = new MyClass;
$classname = "MyClass";

echo $classname::CONSTANT; 

我似乎无法在线找到与此相关的任何文档。有人会帮助我吗?

3 个答案:

答案 0 :(得分:0)

从PHP 5.3.0开始,可以使用变量引用该类[0]

您没有创建对象的实例。所以你没有实例化一个类。 PHP常量可以静态访问。

[0] http://php.net/manual/en/language.oop5.constants.php

答案 1 :(得分:0)

这不是一个实例化,在这种情况下你可以使用四个点(::)来访问一个静态变量,方法或常量。

答案 2 :(得分:0)

事实上,$classname只是说MyClass的另一种方式。因此$classname::CONSTANTMyClass::CONSTANT相同。但是没有实例化,因为$classname->showConstant()不起作用!!