PHP名称空间关键字和__NAMESPACE__常量

介绍

在PHP中,namespace关键字用于定义命名空间。它也用作运算符,请求访问当前命名空间中的某些元素。该 __NAMESPACE__当前命名空间的报酬不变名称

__NAMESPACE常量

__NAMESPACE__从命名的命名空间返回其名称,对于全局和未命名的命名空间,它返回空值

示例

#test1.php
<?php
echo "name of global namespace : " . __NAMESPACE__ . "\n";
?>

输出结果

返回一个空字符串

name of global namespace :

对于命名空间,返回其名称

示例

<?php
namespace myspace;
echo "name of current namespace : " . __NAMESPACE__ . "\n";
?>

输出结果

name of current namespace : myspace

动态名称构造

__NAMESPACE__对于动态构造名称很有用

示例

<?php
namespace MyProject;
class myclass {
   function hello(){echo "hello world";}
};
$cls="myclass";
function get($cls){
   $a = __NAMESPACE__ . '\\' . $cls;
   return new $a;
}
get($cls)->hello();
?>

输出结果

上面的代码显示以下输出

hello World

命名空间运算符

namespace关键字可以用作类的self运算符,以从当前命名空间或子命名空间显式请求元素。

示例

<?php
namespace Myspace;
class myclass {
   function hello(){echo "hello Myspace";}
}
$a = new namespace\myclass();
$a->hello();
?>

输出结果

上面的代码显示以下输出

hello Myspace

从全局命名空间中,命名空间运算符引用当前命名空间中的函数/类,该命名空间是全局命名空间

示例

<?php
class myclass {
   function hello(){echo "hello global space";}
}
$a = new namespace\myclass();
$a->hello();
?>

输出结果

上面的代码显示以下输出

hello global space