PHP 命名空间(namespace)是在PHP 5.3中加入的,如果你学过C#和Java,那命名空间就不算什么新事物。 不过在PHP当中还是有着相当重要的意义。
PHP 命名空间可以解决以下两类问题:
用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。 参考来源:http://www.w3cschool.cn/php/b298tfl0.html
PHP 7 可以使用一个 use 从同一个 namespace 中导入类、函数和常量: 参考来源:http://www.w3cschool.cn/php/php-use-statement.html
- //inc.php 用来作测试的文档
- namespace AaaBbb;
- class MyClass{
- public $val = '阅谁问君诵,';
- static $val2 = '水落清香浮。';
- function myFun(){
- return 'onestopweb.iteye.com';
- }
- }
复制代码- header('Content-Type:text/html;charset=utf-8');
- //第一种,使用全称来访问
- require 'inc.php';
- $myClass = new AaaBbbMyClass();
- echo $myClass->val;
- echo $myClass::$val2;
- echo $myClass->myFun();
复制代码- header('Content-Type:text/html;charset=utf-8');
- //第三种使用 use 来访问
- require 'inc.php';
- use AaaBbbMyClass; //这样MyClass就等于AaaBbbMyClass
- $myClass = new MyClass();
- echo $myClass->val;
- echo $myClass::$val2;
- echo $myClass->myFun();
复制代码- header('Content-Type:text/html;charset=utf-8');
- //第四种使用 use as 来访问
- require 'inc.php';
- use AaaBbb as AB; //AB = AaaBbb
- $myClass = new ABMyClass();
- echo $myClass->val;
- echo $myClass::$val2;
- echo $myClass->myFun();
复制代码效果图:
|