zoukankan      html  css  js  c++  java
  • 什么是php命名空间

    php命名空间是在5.3版本后加入的,命名空间反过来就是空间命名,在这里的空间命名就像window下的文件夹命名,命名空间用关键字namespace来定义。在这里用文件夹举三个例子,比如相对于test文件夹下面的home.txt文件,他相对于文件夹的路径是 test/home.txt,当前文件下他的文件名是 home.txt,他的绝对路径是/test/home.txt.

    命名空间也是用三种方式来表示:

    完全限定符 esthome,像文件夹中的绝对路径;

    限定名称 testhome,像相对文件的目录路径;

    非限定名称 home,像前面的直接使用文件名。

    一直以来不太理解官方的意思,今天自己做了测试,表达一下自己的理解:

    我认为命名空间就好像地球,定义命名空间就像是对国家的定义,使用命名空间就像是出国,第三个比喻可能不是很恰当,上个例子:

    下面是当前访问程序代码:

    结果:

    总结:定义命名空间就好像告诉我们现在在哪里,上面三个文件各自定义不同的命名空间,就好像三个不同的国家,他们中的物品不可能被另一个国家的人使用,前提是必须被带到另一个国家,这里就用到了使用命名空间,官方表示 类、函数、常量都受命名空间的影响,但是我这里却没有作用,只对类有影响(下面代码

    <?php
    /**
     * 当前文件名 word.php
     */
    namespace japan;
    use usaMy;
    require_once("china.php");
    require_once("usa.php");
    
    // echo IP,'<br/>';
    // echo MyFunction(),'<br/>';
    echo My::who(),'<br/>';
    

     上面代码的结果是: usaMy::who

    如果定义命名空间为china:

    <?php
    /**
     * 当前文件名 word.php
     */
    namespace china;
    use usaMy;
    require_once("china.php");
    require_once("usa.php");
    
    echo IP,'<br/>';
    echo MyFunction(),'<br/>';
    echo My::who(),'<br/>';
    

     结果为:

    192.168.0.17
    chinaMyFunction
    usaMy::who
    

     根据以上总结,命名空间的定义就是国家的定义,在程序中就像一个大的代码库,如果想使用另一个代码库的类,就需要使用命名空间;

    命名空间要求:

    命名空间前面不要出现任何字符(包括空白)

    第一次了解命名空间,如果上面有些定义说的不好,请留下您的意见,我对命名空间还有很多的疑问,比如:怎么使用命名空间影响常量和函数,如果你知道,或者你在哪里看到过好的解释,请给我留言

    如果您看了本篇博客,觉得对您有所收获,请点击右下角的 [推荐]

    如果您想转载本博客,请注明出处

    如果您对本文有意见或者建议,欢迎留言

    感谢您的阅读,请关注我的后续博客

  • 相关阅读:
    记Spring搭建功能完整的个人博客「Oyster」全过程[其二] Idea中Maven+SpringBoot多模块项目开发的设计和各种坑(模块间依赖和打包问题)
    记Spring搭建功能完整的个人博客「Oyster」全过程[其一] 整体思路:需求、架构及技术要求
    [总结-动态规划]经典DP状态设定和转移方程
    HDU-6217 BBP Formula 脑洞
    UVA-11426 GCD
    UVA-11806 Cheerleaders 计数问题 容斥定理
    CodeForces-546D Soldier and Number Game 筛法+动态规划
    CodeForces-148D Bag of mice 概率dp
    Gym-101615D Rainbow Roads 树的DFS序 差分数组
    AVL树 算法思想与代码实现
  • 原文地址:https://www.cnblogs.com/geek12/p/3780561.html
Copyright © 2011-2022 走看看