1、编程: 用大括号语法实现在一个脚本中创建多个命名空间并访问成员
<?php
//声明命名空间
//namespace1
namespace one{
class Demo{
public $name = 'Lao Fashi';
}
const SITE = 'CRRC';
function add($a, $b){return $a+$b;
}
}
//namespace2
namespace Two{
class Demo {
public $name = 'Shi Laoshi';
}
const SITE = 'TEG';
function add($a, $b) {
return $a + $b;
}
}
//namespace3
namespace Three{
echo (new \Two\Demo)->name, '<br>';
echo 'Namespace is ', __NAMESPACE__, '<br>';
//访问其他空间
echo (new \one\Demo)->name, '<br>';
}点击 "运行实例" 按钮查看在线实例
2、编程:使用use 导入其它脚本中的类/常量/函数,并使用别名方式访问
<?php
//声明命名空间one
namespace one;
require 'two/three/demo.php';
use one\two\three\Demo as DemoOthers;
class Demo{
public $name='Mr Shi';
const SITE='www.amtb.cn';
function add($x,$y){return $x+$y;}
}
echo (new DemoOthers)->name;点击 "运行实例" 按钮查看在线实例
3、问答: 非限定名称,限定名称和完全限定名称的命名空间之间的区别与联系是什么?
(1)非限定名称:类似当前目录下访问,当前空间内访问不需要添加空间前缀;
(2)限定名称: 类似于相对路径访问,two\Demo 会自动加上当前空间前缀:one,最终解析为: one\two\Demo;
(3)完全限定名称:从全局空间开始,类似于从根目录开始,从当前的\one\two\开始,访问另一个空间的成员,要从根开始。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号