前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >php面向对象16篇 命名空间的概述

php面向对象16篇 命名空间的概述

作者头像
贵哥的编程之路
发布2020-10-28 12:23:39
3120
发布2020-10-28 12:23:39
举报
文章被收录于专栏:用户7873631的专栏

核心概念:核心慨念都是自定义一个存储空间。避免类名重复系统无法判断该执行哪一个类或是哪一个函数。 问题? 自定义一个存储空间? 存储数据的空间. 问题? 类名重复系统无法判断该执行哪一个类或是哪一个函数? .我用代码举个例子,演示一下把好吧. a.php

代码语言:javascript
复制
<?php
class a{//类a
 public  function  afun()//函数afun
{
    echo "aaaa";
}
}
?>

b.php:

代码语言:javascript
复制
<?php
class a{//类a
 public  function  bfun()//函数bfun
{
    echo "aaaa";
}
}
?>

问题:在c.php中同时调用afun()与bfun() 问题来了,如果同时require文件a,php,b.php那么实例化对象时class a到底是a.php中的还是b.php的?于是为了方便管理类引入了命名空间namespace。

重点来了。

代码语言:javascript
复制
<?php
   namespace ns\a;//定义命名空间
    class a{//类a 
    public  function  afun()//函数afun
    {    echo "aaaa";
    }
    }
 ?>
代码语言:javascript
复制
<?php
namespace ns\b;//定义命名空间
class a{//类a
 public  function  bfun()//函数bfun
{
    echo "aaaa";
}
}
?>

于是在c.php中我们就可以引用上面定义命名空间 怎么引用?这是关键字use就出来了!

代码语言:javascript
复制
<?php
require_once('a.php');//引入文件a.php
require_once('\b.php');//引入文件a.php
use ns\a\a as a;  //使用命名空间ns\a中的类a 并用a替换
use ns\b\a as b;//使用命名空间ns\b中的类a 并用b替换
$a=new a();//实例化a.php 中的类a
$a->afun();
$a=new b();//例化b.php 中的类a
$a->bfun();

命名空间:顾名思义是在一个磁盘cdef…盘的任何一个盘!!!里面!!!,文件夹没有后缀名,同一种类型的文件a.html与文件a.html不能存放在同一个空间下(不能存放), 记住,在同一个空间内不同后缀名的相同文件名可以相同这么没关系的,可以存放),不同类型的在一个空间内能相同。 命名空间用来解决两大问题? 在一个空间下的命名冲突. 这些受命名空间影响? 类(包括抽象类和 traits)、接口、函数和常量。 它必须在其它所有代码之前声明命名空间,除了一个以外: declare 关键字。 代码演示把:

代码语言:javascript
复制
<?php
namespace     MyProject
{
     const PI=1;
     class people
     {}
     function eat()
{
}
echo "吃饭啦";
}
?>

另一种形式:

代码语言:javascript
复制
<?php
namespace MyProject;
 const PI=1;
     class people
     {}
     function eat()
{
}
echo "吃饭啦";
?>

在声明命名空间之前唯一合法的代码是用于定义源文件编码方式 的declare语句。另外,所有非 PHP 代码包括空白符都不能出现在命 名空间的声明之前.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/06/15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档