• PHP之namespace小结


    命名空间的使用

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

    PHP 命名空间中的类名可以通过三种方式引用:

    • 非限定名称,或不包含前缀的类名称.
    • 限定名称,或包含前缀的名称。
    • 完全限定名称,或者包含了全局前缀操作符的名称

    file1.php

    <?php
    namespace FooBarsubnamespace; 
    
    const FOO = 1;
    function foo() {}
    class foo
    {
        static function staticmethod() {}
    }
    ?>
    

    file2.php

    <?php
    namespace FooBar;
    include 'file1.php';
    
    const FOO = 2;
    function foo() {}
    class foo
    {
        static function staticmethod() {}
    }
    
    /* 非限定名称*/
    foo(); /*解析为:FooBarfoo*/
    foo::staticmethod(); /*同上*/
    echo FOO; /*同上*/
    /*限定名称*/
    subnamespacefoo(); /*解析为:FooBarsubnamespacefoo*/
    subnamespacefoo::staticmethod(); /*同上*/
    echo subnamespaceFOO; /*同上*/
    
    /*完去限定名称*/
    FooBar|foo(); /*解析为:FooBar|foo*/
    FooBarfoo::staticmethod(); /*同上*/
    FooBarFOO; /*同上*/
    

    注意访问任意全局类、函数或常量,都可以使用完全限定名称,例如 strlen() 或 Exception 或 INI_ALL。

    在命名空间内部访问全局类、函数和常量:

    <?php
    namespace Foo;
    
    function strlen() {}
    const INI_ALL = 3;
    class Exception {}
    
    $a = strlen('hi'); // 调用全局函数strlen
    $b = INI_ALL; // 访问全局常量 INI_ALL
    $c = new Exception('error'); // 实例化全局类 Exception
    ?>
  • 相关阅读:
    Spring MVC 支持 RESTful 风格编程
    SpringMVC 目标方法返回 json 格式数据
    SpringMVC 文件上传
    使用Eclipse 创建 Maven 项目
    SpringMVC 环境搭建
    SpringMVC运行原理
    Linux(centos)下SVN服务器的搭建及简单配置和使用
    Linux 后台执行脚本命令
    C++入门教程,C++基础教程 更新中...
    Mac开发之HID通讯开发
  • 原文地址:https://www.cnblogs.com/sinceForever/p/7553243.html
Copyright © 2020-2023  润新知