PHP 命名空间 use 是什么意思?

php中文网
发布: 2016-06-06 20:06:58
原创
1588人浏览过

<?php
namespace foo;
use MyFullClassname as Another;//★★★★★★★★这句什么意思?★★★★★★★★

// 下面的例子与 use MyFullNSname as NSname 相同
use MyFullNSname;

// 导入一个全局类
use ArrayObject;

// importing a function (PHP 5.6+)
use function MyFullunctionName;

// aliasing a function (PHP 5.6+)
use function MyFullunctionName as func;

// importing a constant (PHP 5.6+)
use const MyFullCONSTANT;

$obj = new namespaceAnother; // 实例化 fooAnother 对象
$obj = new Another; // 实例化 MyFullClassname 对象
NSnamesubnsunc(); // 调用函数 MyFullNSnamesubnsunc
$a = new ArrayObject(array(1)); // 实例化 ArrayObject 对象
// 如果不使用 "use ArrayObject" ,则实例化一个 fooArrayObject 对象
func(); // calls function MyFullunctionName
echo CONSTANT; // echoes the value of MyFullCONSTANT
?>
登录后复制

这是别人给我的一个帮助文档讲 use 的?
namespace foo; 我知道,应该是开辟一个 叫foo的空间;
use my ullclassname as another; 是什么意思?
as 我懂,是别名 mysql 也有这个语法

use MyFullClassname
我不懂了,
问题1:
use MyFullClassname 的意思是使用 MyFullClassname 空间的意思?

问题3:
MyFull 是个空间路径? classname是个类名?
还是 MyFullclassname 是个路径?

MyFullclassname 这个空间再哪里写着?或者  MyFull 这个空间路径在哪?

家电小商城网站源码1.0
家电小商城网站源码1.0

家电公司网站源码是一个以米拓为核心进行开发的家电商城网站模板,程序采用metinfo5.3.9 UTF8进行编码,软件包含完整栏目与数据。安装方法:解压上传到空间,访问域名进行安装,安装好后,到后台-安全与效率-数据备份还原,恢复好数据后到设置-基本信息和外观-电脑把网站名称什么的改为自己的即可。默认后台账号:admin 密码:132456注意:如本地测试中127.0.0.1无法正常使用,请换成l

家电小商城网站源码1.0 0
查看详情 家电小商城网站源码1.0

反正这个php文件里面没有 就 namespace 了一次,所以应该不在这个文件,
不在这个文件在哪?
也没有 include(), 也没有 require().
是在一个别的文件吗?
那这个文件在哪?整个电脑有无数文件,他怎么知道这个文件在哪?
难道打开这个文件之后,他会把整个电脑遍历一遍吗?

立即学习PHP免费学习笔记(深入)”;

问题2:
use MyFullClassname 之后能干嘛?

如果 include("1.php"); 之后,可以使用 1.php 里面的变量 类 function 等,
但是 use MyFullClassname 能干嘛?

我写了下面俩文件:

<?php
    namespace yangbin;
    const aValue = "yangbin\a";
登录后复制
<?php
    use yangbin;
    echo yangbinValue;
登录后复制

为什么输出不了 aValue???

回复内容:

<?php
namespace foo;
use MyFullClassname as Another;//★★★★★★★★这句什么意思?★★★★★★★★

// 下面的例子与 use MyFullNSname as NSname 相同
use MyFullNSname;

// 导入一个全局类
use ArrayObject;

// importing a function (PHP 5.6+)
use function MyFullunctionName;

// aliasing a function (PHP 5.6+)
use function MyFullunctionName as func;

// importing a constant (PHP 5.6+)
use const MyFullCONSTANT;

$obj = new namespaceAnother; // 实例化 fooAnother 对象
$obj = new Another; // 实例化 MyFullClassname 对象
NSnamesubnsunc(); // 调用函数 MyFullNSnamesubnsunc
$a = new ArrayObject(array(1)); // 实例化 ArrayObject 对象
// 如果不使用 "use ArrayObject" ,则实例化一个 fooArrayObject 对象
func(); // calls function MyFullunctionName
echo CONSTANT; // echoes the value of MyFullCONSTANT
?>
登录后复制

这是别人给我的一个帮助文档讲 use 的?
namespace foo; 我知道,应该是开辟一个 叫foo的空间;
use my ullclassname as another; 是什么意思?
as 我懂,是别名 mysql 也有这个语法

use MyFullClassname
我不懂了,
问题1:
use MyFullClassname 的意思是使用 MyFullClassname 空间的意思?

问题3:
MyFull 是个空间路径? classname是个类名?
还是 MyFullclassname 是个路径?

MyFullclassname 这个空间再哪里写着?或者  MyFull 这个空间路径在哪?

反正这个php文件里面没有 就 namespace 了一次,所以应该不在这个文件,
不在这个文件在哪?
也没有 include(), 也没有 require().
是在一个别的文件吗?
那这个文件在哪?整个电脑有无数文件,他怎么知道这个文件在哪?
难道打开这个文件之后,他会把整个电脑遍历一遍吗?

问题2:
use MyFullClassname 之后能干嘛?

如果 include("1.php"); 之后,可以使用 1.php 里面的变量 类 function 等,
但是 use MyFullClassname 能干嘛?

我写了下面俩文件:

<?php
    namespace yangbin;
    const aValue = "yangbin\a";
登录后复制
<?php
    use yangbin;
    echo yangbinValue;
登录后复制

为什么输出不了 aValue???

use就是说明一下我要用这个东西,后面就可以简写了。例如

use ProjectModelTable;
$table = new Table();
登录后复制

简单说,如果使用了use,那么后面使用的时候只要用最后一个斜杠之后的名字,或者是as指定的别名就可以了,上例不使用use的话,等效代码为

$table = new ProjectModelTable();
登录后复制

你写的文件不成功是因为你没好好看例子。应该是

use const yangbinValue;
echo aValue;
登录后复制

你可以认为命名空间是个路径,再使用命名空间的前提下 完整类名 = 命名空间路径 + 类名

关于include/require,这和use没关系,前面告诉过你了,使用use之后再后面调用的时候就能简写了,别的用处没有。所以如果无法自动加载就自己include吧,关于自动加载可以自己搜索去。

根据你的问题,你是新手,而且几乎没有编程经验,缺乏联想和推理能力,建议自己多思考。其实这个东西有很多借鉴的,比如磁盘路径、别名使用,并不难理解,但是你在其它方面的基础欠缺造成了理解困难。

另外,要细心。不对太正常了,随便写几句当然不对。第一步是仔细的看文档,先做对一次,然后逐渐修改,遇到问题又实在想不明白就问,象你这个问题同时涉及命名空间、类、函数、常量、文件引用、自动加载一系列问题,别人根本不好回答,你描述问题都打了几百字,别人详细回答你恐怕要几千字了,一毛钱都没有废这么多时间有意义?所以最多就是简答一下,可是这样你又没法儿明白,死循环了。

相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号