php 中类名::class的用法

码农笔记 后端技术 2023-11-22 18:20:33

在 PHP 中,类名::class 是一个特殊的语法,它返回一个字符串,表示对应类的完全限定类名(Fully Qualified Class Name,FQCN)。

 

这个语法可以用于各种场景,比如在使用反射时获取类名、在使用命名空间时引用类等。

 

例如,假设你有一个名为 App\Http\Controllers\UserController 的类,如果你使用 UserController::class,它会返回字符串 "App\Http\Controllers\UserController"。这样在引用类时就可以不需要硬编码完整的类名,而是通过类名::class 动态地获取。

 

这个语法从** PHP 5.5 **开始引入,是一个很方便的特性,可以帮助我们避免在代码中出现硬编码的类名字符串,从而提高代码的可维护性。

 

在使用 UserController::class 之前需要使用 use 关键字导入 UserController 类,否则会出现类未定义的错误。

 

因为 ::class 是用于获取类的完全限定名称,而不是用于引入类本身。所以在使用时,需要先使用use关键字将需要使用的类导入到当前命名空间中。

 

例如:

 

 

<?php
namespace App\Http\Controllers;
use App\Http\Controllers\UserController;
class SomeController{    
	public function index(){        
		$userControllerClass = UserController::class;        
		// ...    
	}
}

 

在上面的例子中,我们需要使用 UserController::class 获取 UserController 类的完全限定名称,所以我们先使用use关键字将 UserController 类导入到当前命名空间中,然后在代码中使用 UserController::class 获取完全限定名称。

 

 

评论
列表