簡體   English   中英

沒有`new`關鍵字實例化PHP類?

[英]Instantiate PHP class without `new` keyword?

我習慣了new關鍵字,所以我很驚訝地發現以下內容也適用於實例化。

class MyClass
{
    const CONSTANT = 'constant value';

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

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

echo $classname::CONSTANT; 

我似乎無法在網上找到任何與此相關的文檔。 有人會幫幫我嗎?

從PHP 5.3.0開始,可以使用變量[0]引用該類

您沒有創建對象的實例。 所以你沒有實例化一個類。 PHP常量可以靜態訪問。

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

這不是實例化,使用四個點(::)可以訪問靜態變量,方法或常量。

事實上, $classname只是說MyClass另一種方式。 因此$classname::CONSTANTMyClass::CONSTANT相同。 但是沒有實例化,因為執行$classname->showConstant()是行不通的!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM