PHP学习笔记4——命名空间
命名空间
介绍
- 命名空间是一种封装事务的方法,例如:函数、类、方法等。
- 命名空间作用:用来解决类名或应用程序名冲突问题。举例:项目中会用第三方类,第三方类加载进来后,可能与项目中的类名冲突。
定义要求
- 使用
namespace
关键字来声明一个命名空间; - 所有代码都可以存在于命名空间中,但是只有三种代码会受到空间影响:类、常量(const)、函数;
- 除了类、常量、函数代码外,其他diamante可以写在空间中,但不受空间影响;其他代码相当于“全局代码”。去阿奴代码可以在“任何地方”都能直接使用;
- 全局代码所在的空间,称为“根空间”,相当于Windows系统的桌面;
- 声明命名空间的语法,是PHP脚本的第1行代码;空格、空行都不可以;
语法格式
//声明一个命名空间的语法格式
namespace SpaceName;
/*
这里的代码都是空间中的代码;
*/
语法说明:
(1)namespace 是声明空间的关键字,不区分大小写
(2)SpaceName 是定义的空间名称,命名方式与类名相同
(3)所有代码都可以存在与空间中
(4)只有类、函数、常量代码会受到空间影响
定义单个命名空间
代码例子:
namespace.php
<?php
//声明一个命名空间
namespace App;
//(1)定义一个学生类
class Student{
private $name="小明";
public function __construct(){
echo "我的名字叫:{
$this->name}<br>";
}
}
//(2)定义一个函数
function showInfo(){
echo "PHP命名空间函数";
}
//(3)定义一个常量
const DB_HOST="localhost";
//(4)定义一个变量
$a=1000;
app.php
<?php
//声明页面字符集
header("content-type:text/html;charset=utf-8");
//(1)包含文件
require_once("./namespace.php");
//(2)创建学生类对象
$obj=new App\Student();
//(3)调用showInfo()函数
App\showInfo();
echo "<br>".App\DB_HOST;
echo "<br>".$a;
定义子命名空间
描述
文件夹可以有子目录的情况,命名空间也有子空间情况。
- 目录的分隔符为斜杠(/),命名空间路径的分隔符是反斜杠()。
举例:App\Home\Controller
代码例子:
namespace02.php
<?php
//声明一个命名空间
namespace App\Home\Controller;
//(1)定义一个学生类
class Student{
private $name="小明";
public function __construct(){
echo "我的名字叫:{
$this->name}<br>";
}
}
//(2)定义一个函数
function showInfo(){
echo "PHP命名空间函数";
}
//(3)定义一个常量
const DB_HOST="localhost";
//(4)定义一个变量
$a=1000;
app02.php
<?php
//声明页面字符集
header(