[英]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常量可以靜態訪問。
這不是實例化,使用四個點(::)可以訪問靜態變量,方法或常量。
事實上, $classname
只是說MyClass
另一種方式。 因此$classname::CONSTANT
與MyClass::CONSTANT
相同。 但是沒有實例化,因為執行$classname->showConstant()
是行不通的!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.