简单易懂的命名空间及use的使用
来源:互联网 发布:照片找回软件 编辑:程序博客网 时间:2024/05/18 06:33
那就是命名空间的使用及use引入。看了很多网上的说法,也看了官方文档,意思大概明白,也很好理解,命名空间还好说,给这个空间起个名字嘛,但是use具体操作起来就不行 了,怎么也搞不通。后来看一个yii学习视频才恍然明白。
比方说建三个文件。
第一个文件 A.php,里边有两个类,命名空间是 a\b\c;
<?php
namespace a\b\c;
class Apply{
function get_info(){
echo 'this is A Apply';
}
}
class C{
function info(){
echo 'this is info';
}
}
第二个文件 B.php 命名空间 a\b\d;
<?php
namespace a\b\d;
class Apply{
function get_info(){
echo 'this is B Apply';
}
}
第三个文件 index.php ,用来使用上边两个文件的类。
比方说我们现在想实例化A.php里的类,该怎么实现呢?
首先要包含这个文件 require_once('A.php');
然后 use a\b\c;? 还是a\b\c\A? 起初我也是这么认为的。其实这是错的,use应该是这样的,命名空间\这个空间下你要实例化类的类名。比方说我们要实例化 A.php里的Apply类,那么 use a\b\c\Apply; 这就相当于引入这个类,接下来再 new Apply();调用里边的方法,跟平常是一样的。如果要实例化类C,就 use a\b\c\C;
注意:use不等于require_once或者include,use的前提是已经把文件包含进当前文件。
顺便提一句,在MVC模式中,类名和文件名是相同的,所以use的时候会让不了解的人以为use后面跟的是文件名,我之前就这么以为的。其实use的还是类名。
有的人可能问了,那我不同的命名空间下,有相同的类名,在同一个文件中使用怎么办?比方说我们上边的index.php,把A.php和B.php都包含进来,然后new Apply();这个时候是会报错的,解决方案就是起别名,比方说 use a\b\d\Apply as b; 此时我们new 的时候不应该写成 new Apply();而是new b();这样就不会发生冲突了。
点击打开链接
- 简单易懂的命名空间及use的使用
- 简单易懂的命名空间及use的使用
- 简单易懂的命名空间及use的使用
- 关于PHP的命名空间,简单粗暴易懂
- PHP命名空间 namespace 及导入 use 的用法
- 简单易懂的使用
- 简单易懂的空间坐标索引1
- 简单易懂的空间坐标索引12
- Flex--Use Flex的命名空间 :mx_internal
- 命名空间的使用
- 命名空间的使用
- 命名空间的使用
- 命名空间的使用
- 命名空间的使用
- 命名空间的使用
- 命名空间的使用
- PHP类的自动加载与命名空间及use的理解
- php 命名空间的简单使用和介绍
- WKWebView API精讲(OC)
- jsp hibernate技术开发实现电子通讯录后台管理系统
- Linux趣事 -- (2.6)学生信息管理系统(完结)
- php环境安装说明
- 编写拦截器进行拦截
- 简单易懂的命名空间及use的使用
- Vector Space Model (向量空间模型)
- Cracking the Coding Interview 之测试
- 5.1从键盘上任意输入一个实数,不使用计算绝对值函数编程计算并输出该实数的绝对值
- 2017.11.12心得
- 数据结构(1)-递归
- 转-C语言中使用指针与数组的区别
- flask sqlalchemy实现增删改查
- iGH EtherCAT初始化流程分析(二)