PHP 命名空间别名/导入

phpserver side programmingprogramming更新于 2025/7/19 1:52:17

简介

命名空间的一个重要特性是能够使用别名或导入引用外部完全限定名称。PHP 命名空间支持以下类型的别名或导入 −

  • 为类名创建别名
  • 为接口名创建别名
  • 为命名空间名创建别名
  • 为函数和常量名创建别名或导入

在 PHP 中,别名使用 use 运算符实现。

use 运算符

示例

#test1.php
<?php
namespace mynamespace;
function sayhello(){
   echo "Hello from mynamespace
"; } sayhello(); namespace mynewspace; function sayhello(){    echo "Hello from my new space
"; } sayhello(); use \mynewspace\sayhello as hello; ?>

输出

Hello from mynamespace
Hello from my new space

多个 use 语句合并

示例

<?php
namespace mynamespace;
class myclass{
   function test() { echo "myclass in mynamespace
"; } } class testclass{    static function test() { echo "testclass in mynamespace
"; } } use \mynamespace\myclass as myclass, \mynamespace\testclass; $a=new myclass(); $a->test(); $b=new \mynamespace\testclass(); $b->test(); ?>

输出

myclass in mynamespace
testclass in mynamespace

导入和动态名称

动态替换导入类的名称

示例

<?php
namespace mynamespace;
class myclass{
   function test() { echo "myclass in mynamespace
"; } } class testclass{    static function test() { echo "testclass in mynamespace
"; } } use \mynamespace\myclass as myclass; $a=new myclass; $b='myclass'; $c=new $b; ?>

use 关键字必须在最外层或全局作用域中声明,或者在命名空间声明内部声明。导入过程在编译时完成,而不是运行时。因此,它不能是块作用域。以下用法将是非法的

示例

<?php
function myfunction(){
   use myspace\myclass;
   //
   //
}
?>

包含的文件不会继承父文件的导入规则,因为它们是基于每个文件的


相关文章