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; // // } ?>
包含的文件将不会继承父文件的导入规则,因为它们是按文件为基础的
广告