首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 5.5 類級別常量 ::class 使用詳解

     編輯:PHP 綜合知識

PHP 5.5 新特性:::class 常量

PHP 5.5 引入類級別常量 ClassName::class,可取得類別的完整限定名稱(含命名空間),編譯期解析,不需實例化物件。

基本用法

<?php
namespace Vendor\Package;

class Foo { }

var_dump(Foo::class); // 輸出: string(18) "Vendor\Package\Foo"
?>

為何需要 ::class?

雖然 __NAMESPACE__ . '\Foo' 也能達到類似效果,但在使用 use 導入別名時,::class 更優雅且不易出錯:

<?php
use Vendor\Package\Foo;
use Vendor\Package\Bar;

class FooTest extends PHPUnit_Framework_TestCase {
    public function testBarCanBeProcessed() {
        // 使用 ::class 取得完整類別名,避免硬編碼字串
        $bar = $this->getMock(Bar::class);
        $foo = new Foo();
        $foo->process($bar);
    }
}
?>

優勢總結

  • 重構安全:IDE 可追蹤類別引用,重命名類別時自動更新。
  • 避免字串硬編碼:減少拼寫錯誤,特別在大型專案中。
  • 編譯期解析:無執行期效能負擔。
  • 配合 use 別名:即使類別有別名,::class 仍回傳原始完整名稱。

適用場景

  • 依賴注入容器註冊
  • 單元測試 Mock 物件建立
  • 動態實例化、工廠模式
  • 路由對應控制器類別
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved