Android程序员学PHP开发(30)-ThinkPHP5.0(2)命名空间-PhpStorm

时间:2022-09-24 14:28:13
转载请注明出处: http://blog.csdn.net/iwanghang/
觉得博文有用,请点赞,请评论,请关注,谢谢!~


     命名空间 使用范围 访问方式

     *

     命名空间

     从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,

     对于目录中的文件来说,它就扮演了命名空间的角色。具体举个例子,文件 foo.txt 可以同时在目录/home/greg 和 /home/other 中

     存在,但在同一个目录中不能存在两个 foo.txt 文件。另外,在目录 /home/greg 外访问 foo.txt 文件时,我们必须将目录名以及目

     录分隔符放在文件名之前得到 /home/greg/foo.txt。这个原理应用到程序设计领域就是命名空间的概念。

     http://php.net/manual/zh/language.namespaces.php

     *

     ThinkPHP5采用命名空间方式定义和自动加载类库文件,有效的解决了多模块和Composer类库之间的命名空间冲突问题,并且实现了更加

     高效的类库自动加载机制。

     http://www.kancloud.cn/manual/thinkphp5/118014

     *

     function 适用于命名空间

     const 适用于命名空间

     class 适用于命名空间

     define 不适用于命名空间

     *

     访问方式:

     1、非限定名称访问方式

     2、完全限定名称访问方式

     3、限定名称访问方式(相对路径)


<?php    /**
* 命名空间 使用范围 访问方式
*
* 命名空间
* 从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,
* 对于目录中的文件来说,它就扮演了命名空间的角色。具体举个例子,文件 foo.txt 可以同时在目录/home/greg 和 /home/other 中
* 存在,但在同一个目录中不能存在两个 foo.txt 文件。另外,在目录 /home/greg 外访问 foo.txt 文件时,我们必须将目录名以及目
* 录分隔符放在文件名之前得到 /home/greg/foo.txt。这个原理应用到程序设计领域就是命名空间的概念。
* http://php.net/manual/zh/language.namespaces.php
*
* ThinkPHP5采用命名空间方式定义和自动加载类库文件,有效的解决了多模块和Composer类库之间的命名空间冲突问题,并且实现了更加
* 高效的类库自动加载机制。
* http://www.kancloud.cn/manual/thinkphp5/118014
*
* function 适用于命名空间
* const 适用于命名空间
* class 适用于命名空间
* define 不适用于命名空间
*
* 访问方式:
* 1、非限定名称访问方式
* 2、完全限定名称访问方式
* 3、限定名称访问方式(相对路径)
*/


/**
* kj1,命名空间1
*/
namespace kj1;
function getmsg(){
echo '123<br>';
}
//define('MN','iwanghang');
const MN="iwanghang<br>";
class Animals{
public $obj='cat<br>';
}


/**
* kj2,命名空间2
*/
namespace kj2;
use kj1\Animals;

function getmsg(){
echo '456<br>';
}
//define('MN','iwanghang0');
const MN="iwanghang0<br>";

/**
* 访问方式:1、非限定名称访问方式
*/
getmsg();

/**
* 访问方式:2、完全限定名称访问方式
*/
\kj1\getmsg();
\kj2\getmsg();
echo \kj1\MN;

$animal = new Animals();
echo $animal->obj;


/**
* 访问方式:3、限定名称访问方式
*/
//echo kj1\getmsg(); // 会报错,function kj2\kj1\getmsg() 找不到这个函数

/**
* 访问方式:3、限定名称访问方式
*/
namespace kj3;
echo kj4\getmsg(); // 打印结果:789


namespace kj3\kj4;
function getmsg(){
echo '789<br>';
}



转载请注明出处: http://blog.csdn.net/iwanghang/



欢迎移动开发爱好者交流
沈阳或周边城市公司有意开发Android,请与我联系
联系方式
Android程序员学PHP开发(30)-ThinkPHP5.0(2)命名空间-PhpStorm
微信:iwanghang
QQ:413711276
邮箱:iwanghang@qq.com



觉得博文有用,请点赞,请评论,请关注,谢谢!~