热搜词
发表于 2022-5-4 10:48:37 | 显示全部楼层 |阅读模式

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


  1. //inc.php 用来作测试的文档
  2. namespace AaaBbb;
  3. class MyClass{
  4.         public $val = '阅谁问君诵,';
  5.         static $val2 = '水落清香浮。';
  6.         function myFun(){
  7.                 return 'onestopweb.iteye.com';
  8.         }
  9. }
复制代码
  1. header('Content-Type:text/html;charset=utf-8');
  2. //第一种,使用全称来访问
  3. require 'inc.php';
  4. $myClass = new AaaBbbMyClass();
  5. echo $myClass->val;
  6. echo $myClass::$val2;
  7. echo $myClass->myFun();
复制代码
  1. header('Content-Type:text/html;charset=utf-8');
  2. //第三种使用 use 来访问
  3. require 'inc.php';
  4. use AaaBbbMyClass; //这样MyClass就等于AaaBbbMyClass
  5. $myClass = new MyClass();
  6. echo $myClass->val;
  7. echo $myClass::$val2;
  8. echo $myClass->myFun();
复制代码
  1. header('Content-Type:text/html;charset=utf-8');
  2. //第四种使用 use as 来访问
  3. require 'inc.php';
  4. use AaaBbb as AB; //AB = AaaBbb
  5. $myClass = new ABMyClass();
  6. echo $myClass->val;
  7. echo $myClass::$val2;
  8. echo $myClass->myFun();
复制代码

效果图:
89fbc22e-c79f-3361-ab5d-6e87e47c98ce.png


全部评论1
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2025-2-23 14:07 , Processed in 0.194187 second(s), 28 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2025 Discuz! Team