PHP 命名空间别名/导入


简介

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

  • 类名别名,
  • 接口名别名,
  • 命名空间名别名
  • 函数和常量名称别名或导入。

在 PHP 中,使用操作符完成别名设置。

使用操作符

示例

 动态演示

#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;
   //
   //
}
?>

包含的文件将不会继承父文件的导入规则,因为它们是按文件为基础的

更新于:2020 年 9 月 18 日

795 次浏览

开始你的 职业

完成课程后获得认证

开始吧
广告