PHP的命名空间

WBOY
Release: 2016-06-23 13:40:09
Original
996 people have browsed it

PHP的命名空间(namespace)是php5.3之后才有的。这个概念在C#中已经很早就有了,php中的namespace其实和c#的概念是一样的。

为什么php中要使用namespace?

假设如果不使用namespace,那么每个类在一个项目中的名字就必须是固定的。因为php在new的时候不管是调用autoload还是调用已加载过的类,都存在一个类名对应的文件。所以在没有namespace的时候,我们会想各种命名规则来区分不同的类,比如project1_school1_class1_Student或者project2_school_class_Student。

引入namespace之后就可以将这个有效规避了,一个namespace就相当于对应一个文件路径,查找这个类的时候,就会去对应的文件路径查找类定义文件了。

定义

<?php namespace Myproject;
Copy after login

使用

<?php use Myproject/School;
Copy after login

别名

<?php use Myproject/School as School1;   // 别名
Copy after login

命名空间是运行时解析的。use就相当于一种声明,并不解析和加载。比如下面这个例子:

test.php

<?phpuse my\name;require_once("/home/yejianfeng/handcode/test/namespace1.php");$a = new my\name\A();$a->Print1();
Copy after login

namespace1.php

<?phpnamespace my\name;class A {        public function Print1(){                echo 11;        }}
Copy after login




Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template