TP5 namespace 和 use 的用法

本文介绍了PHP5.3引入的命名空间功能,详细解释了如何通过不同的方式访问命名空间中的类、函数和常量,包括使用全称、指定命名空间、使用use导入及使用use结合as创建别名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

<?php
//inc.php 用来作测试的文档
namespace Aaa\Bbb;
class MyClass{
	public $val = '阅谁问君诵,';
	static $val2 = '水落清香浮。';
	function myFun(){
		return 'onestopweb.iteye.com';
	}
}

 

<?php
header('Content-Type:text/html;charset=utf-8');
//第一种,使用全称来访问
require 'inc.php';
$myClass = new \Aaa\Bbb\MyClass();
echo $myClass->val;
echo $myClass::$val2;
echo $myClass->myFun();

 

<?php
//第二种,使用 namespace 来访问
namespace Aaa\Bbb; //调整当前脚本到Aaa\Bbb这个ns域,而且 namespace 申明必须在第一句
header('Content-Type:text/html;charset=utf-8');
require 'inc.php';
$myClass = new MyClass();
echo $myClass->val;
echo $myClass::$val2;
echo $myClass->myFun();

 

<?php
header('Content-Type:text/html;charset=utf-8');
//第三种使用 use 来访问
require 'inc.php';
use Aaa\Bbb\MyClass; //这样MyClass就等于Aaa\Bbb\MyClass
$myClass = new MyClass();
echo $myClass->val;
echo $myClass::$val2;
echo $myClass->myFun();

 

<?php
header('Content-Type:text/html;charset=utf-8');
//第四种使用 use as 来访问
require 'inc.php';
use Aaa\Bbb as AB; //AB = Aaa\Bbb
$myClass = new AB\MyClass();
echo $myClass->val;
echo $myClass::$val2;
echo $myClass->myFun();

 

效果图:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值