批改状态:合格
老师批语:
1、用大括号语法实现在一个脚本中创建多个命名空间并访问成员:
<?php
namespace a{
const NAME = '天弘';
class Db{
public static function hello(){
return '欢迎你,来到编程世界';
}
}
function demo(){
return __METHOD__;
}
}
namespace b\c{
class Db{
public static function hello(){
return '欢迎你,恭喜来到精彩的编程世界';
}
}
}
namespace b{
const NAME = '天天';
class Db{
public static function hello(){
return '欢迎你天弘,恭喜来到精彩的编程世界';
}
}
function demo(){
return __METHOD__;
}
// 访问的是 b命名空间的Db类hello方法
echo Db::hello(),'<hr>';
// 访问的是 a命名空间的demo方法
echo \a\demo(),'<hr>';
// 访问的是 a命名空间的子命名空间hello方法
echo c\Db::hello();
}点击 "运行实例" 按钮查看在线实例
2、使用use 导入其它脚本中的类/常量/函数,并使用别名方式访问:
demo.php文件:
<?php namespace a;//命名空间 require 'demo1.php'; use b\c\e as he; // 导入命名空间,并且起个别名 // 访问b的命名空间的demo方法,由于起个别名所以直接使用别名加\访问 echo he\demo(),'<hr>'; echo he\Db::hello(),'<hr>'; echo he\NAME,'<hr>';
点击 "运行实例" 按钮查看在线实例
demo1.php文件:
<?php
namespace b\c\e; // 命名空间
const NAME = '天天';
class Db{
public static function hello(){
return '欢迎你天弘,恭喜来到精彩的编程世界';
}
}
function demo(){
return __METHOD__;
}点击 "运行实例" 按钮查看在线实例
3、非限定名称,限定名称和完全限定名称的命名空间之间的区别与联系是什么?
<?php
namespace a{
const NAME = '天弘';
class Db{
public static function hello(){
return '欢迎你,来到编程世界';
}
}
function demo(){
return __METHOD__;
}
}
namespace b\c{
class Db{
public static function hello(){
return '欢迎你,恭喜来到精彩的编程世界';
}
}
}
namespace b{
const NAME = '天天';
class Db{
public static function hello(){
return '欢迎你天弘,恭喜来到精彩的编程世界';
}
}
function demo(){
return __METHOD__;
}
// 访问的是 b命名空间的Db类hello方法
echo Db::hello(),'<hr>'; // 非限定名称,不用带有\可以直接访问当前的hello方法
// 访问的是 a命名空间的demo方法
echo \a\demo(),'<hr>'; // 完全限定名称,带有\,返回根目录选择a目录中的demo方法
// 访问的是 a命名空间的子命名空间hello方法
echo c\Db::hello();// 限定名称,带有\ ,返回父级的目录选择c中hello方法
}点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号