找回密码
 立即注册
搜索
查看: 1804|回复: 0

[基础语法] PHP命名空间(Namespace)代码实例

[复制链接]

581

主题

110

回帖

4066

积分

管理员

积分
4066

众神之神

发表于 2016-1-21 13:11:28 | 显示全部楼层 |阅读模式
命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。这种情况下只要避免命名重复就可以解决,最常见的一种做法是约定一个前缀。

比如:项目中有两个模块cloud和zhai,他们各自有一个打招呼的方法sayHollow;
目录
cloud/Hellow.php
zhai/Hellow.php
index.php
需要在index.php输出这两个模块下的说话方法;

cloud/Hellow.php中的代码:
  1. <?php
  2. namespace cloud;                     /*创建命名空间cloud*/
  3. class Hellow {                      /*创建hellow类*/
  4.     public function sayHellow() {   /*创建sayHellow方法*/
  5.         echo 'Hellow cloud!';        /*输出Hellow cloud!*/
  6.     }
  7. }
复制代码
zhai/Hellow.php
  1. <?php
  2. namespace zhai;                     /*创建命名空间zhai*/
  3. class Hellow {                      /*创建hellow类*/
  4.     public function sayHellow() {   /*创建sayHellow方法*/
  5.         echo 'Hellow zhai!';        /*输出Hellow zhai!*/
  6.     }
  7. }
复制代码
index.php
  1. <?php
  2.     require_once 'cloud/Hellow.php';    /*引入命名空间cloud下的Hellow类*/
  3.     require_once 'zhai/Hellow.php';     /*引入命名空间zhai下的Hellow类*/

  4.     $c = new \cloud\Hellow();   /*实例化 命名空间cloud下的Hellow类为对象*/
  5.     $c->sayHellow();            /*访问对象中的方法*/
  6.     $z = new \zhai\Hellow();    /*实例化 命名空间zhai下的Hellow类为对象*/
  7.     $z->sayHellow();            /*访问对象中的方法*/
  8. ?>
复制代码



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|十三博客 ( 鲁ICP备2023000528号 )

GMT+8, 2026-6-1 18:45 , Processed in 0.177645 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表