php中命名空间namespace和use
对于面向对象编程而言,命名空间namespace和use的概念非常重要.
1.根命名空间是反斜线 \ ,有点类似linux中的根目录 / 的那种感觉,但使用var_dump()函数打印时其实是空字符串
var_dump(__NAMESPACE__);
//string(0) ""
2.而对于根下的子代命名空间,则会显示名称.
namespace App;
var_dump(__NAMESPACE__);
string(3) "App"
3.同一文件中可以有多个命名空间(仅从语法角度讨论).
<?php
namespace App;
var_dump(__NAMESPACE__);
namespace Admin;
var_dump(__NAMESPACE__);
namespace Shop;
var_dump(__NAMESPACE__);
//D:\workspace\mvc\test.php:3:
//string(3) "App"
//D:\workspace\mvc\test.php:5:
//string(5) "Admin"
//D:\workspace\mvc\test.php:7:
//string(4) "Shop"
4.在同一文件中,在某个命名空间中使用另一个命名空间的类.
<?php
namespace App;
var_dump(__NAMESPACE__);
namespace Admin;
var_dump(__NAMESPACE__);
class A{
public static $name = 'classA';
}
namespace Shop;
var_dump(__NAMESPACE__);
echo \Admin\A::$name;
//D:\workspace\mvc\test.php:3:
//string(3) "App"
//D:\workspace\mvc\test.php:5:
//string(5) "Admin"
//D:\workspace\mvc\test.php:10:
//string(4) "Shop"
//classA
在命名空间Shop中使用命名空间Admin的类A,需要在Admin前方加反斜线 \ ,表示从根命名空间查找,如果没有最前面的反斜线,则会报错.
5.文件A引入了另一个文件B,文件A中的命名空间不受影响.
文件B:
<?php
namespace App;
var_dump(__NAMESPACE__);
namespace Admin;
var_dump(__NAMESPACE__);
class A{
public static $name = 'classA';
}
namespace Shop;
var_dump(__NAMESPACE__);
echo Admin\A::$name;
文件A:
<?php
require 'B.php';
var_dump('k'.__NAMESPACE__.'k');
//string(2) "kk"
文件B中定义了很多命名空间,当文件A引入文件B后,并没有受到影响.
6.在文件2中使用文件1中某个命名空间的类
<?php
/*
** 1.php
*/
namespace A;
class Test{
const N = 1;
}
namespace B;
class Test{
const N = 2;
}
<?php
/*
** 2.php
*/
require_once '1.php';
echo \A\Test::N;//1
echo PHP_EOL;
echo \B\Test::N;//2
<?php
/*
** 2.php
*/
require_once '1.php';
use \A\Test;
echo Test::N;//1
echo PHP_EOL;
echo B\Test::N;//2
php中命名空间namespace和use的更多相关文章
- 关于c++中命名空间namespace
一.定义命名空间: 步骤一:在.h文件中:namespace ns{.......}//将定义的类和全局变量,全局函数写入花括号内. 步骤二:在.cpp文件中: using namespace ns ...
- php中的namespace 命名空间
名字解释: namespace(命名空间),命名空间是从php5.3开始支持的功能.作用主要有两个:1.可以避免类名取得过长.2.当在多个框架配合使用时,同名的类之间不会冲突. 命名空间,看名字就知道 ...
- PHP中的命名空间(namespace)及其使用详解
PHP中的命名空间(namespace)及其使用详解 晶晶 2年前 (2014-01-02) 8495次浏览 PHP php自5.3.0开始,引入了一个namespace关键字以及__NAMESPAC ...
- PHP 命名空间(namespace)
PHP 命名空间(namespace) PHP 命名空间(namespace)是在PHP 5.3中加入的,如果你学过C#和Java,那命名空间就不算什么新事物. 不过在PHP当中还是有着相当重要的意义 ...
- Atitit 深入理解命名空间namespace java c# php js
Atitit 深入理解命名空间namespace java c# php js 1.1. Namespace还是package1 1.2. import同时解决了令人头疼的include1 1.3 ...
- PHP 使用命名空间(namespace),实现自动加载
示例: #/DB/MySql.class.php也就是DB文件夹下有MySql.class.php文件 namespace DB; class MySql { public function __co ...
- C++命名空间 namespace的作用和使用解析
一. 为什么需要命名空间(问题提出) 命名空间是ANSIC++引入的可以由用户命名的作用域,用来处理程序中 常见的同名冲突. 在 C语言中定义了3个层次的作用域,即文件(编译单元).函数和复合语句.C ...
- linux中的namespace
本文将就namespace这个知识点,进行简单的归纳总结,力求通俗易通.在资料汇总的过程中,参考了许多网上的博客资料,在文章尾部给出相关链接. namespace,命名空间,从名字 ...
- PHP命名空间(Namespace)的使用详解(转)
对于命名空间,官方文档已经说得很详细[查看],我在这里做了一下实践和总结. 命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误.这种情况下只 ...
随机推荐
- 为python脚本增加命令行参数
from argparse import ArgumentParser p = ArgumentParser() p.add_argument('-b', '--body', help='Return ...
- TinyMCE基础配置
选择器配置 插件配置 工具栏配置 菜单配置 皮肤配置 编辑区宽高配置 编辑区样式配置 隐藏状态栏 选择器配置 选择器就是CSS选择器,它告诉TinyMCE哪个元素是可编辑的. 示例: tinymce. ...
- Go 语言基础语法-Go
Go 标记 Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号.如以下 GO 语句由 6 个标记组成: fmt.Println("Hello, World!") ...
- LabWindows/CVI第一章:基本规则
一. #include<stdio.h> //头文件,#号是预处理指令,standard input output header的缩写. void main() ...
- Python基础-numpy
创建数组 numpy.array():括号内可以是列表.元祖.数组.生成器等 numpy.arange():类似range(),在给定间隔内返回均匀间隔的值 #numpy.linspace() 返回在 ...
- javascript之DOM选择符
javascript库中最常用的一项功能,就是根据CSS选择符选择与某个模式匹配的DOM元素.实际上jQuery的核心就是通过css选择符查询DOM文档取得元素的引用,从而抛开了getElementB ...
- ROS官网新手级教程总结
第 1 关卡:安装和配置 ROS 环境 目标:在计算机上安装和配置 ROS 环境. 安装 ROS 按照 ROS 安装说明进行安装. 管理环境 确定环境变量 ROS_ROOT 和 ROS_PACKAGE ...
- MicroK8s及KubeFlow安装文档
安装简单的k8s大约有三种思路:minikube,microk8s,kubeadm.minikube 虽然是官方出品,但主要还是基于虚拟机做的设计.在 Linux 生产环境下,microk8s 可能是 ...
- dgango
一 mvc与mtv模型 web服务器开发领域里著名的mvc模式,所谓mvc就是把web应用分为模型(M),控制器(C),视图(V),以插件的形式,松耦合的方式连接在一起,模型负责业务对象与数据库的映射 ...
- docker nginx 命令。
docker run -d -p 80:80 -p 443:443 --name baiqian.site --restart=always -v ~/wwwroot/layx:/usr/share/ ...