登录后复制
登录后复制

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

use My\Full\Classname
我不懂了,
问题1:
use My\Full\Classname 的意思是使用 My\Full\Classname 空间的意思?

问题3:
My\Full 是个空间路径? classname是个类名?
还是 My\Full\classname 是个路径?

My\Full\classname 这个空间再哪里写着?或者  MyFull 这个空间路径在哪?

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

问题2:
use My\Full\Classname 之后能干嘛?

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

我写了下面俩文件:

登录后复制
登录后复制
登录后复制
登录后复制

为什么输出不了 aValue???

回复内容:

登录后复制
登录后复制

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

use My\Full\Classname
我不懂了,
问题1:
use My\Full\Classname 的意思是使用 My\Full\Classname 空间的意思?

问题3:
My\Full 是个空间路径? classname是个类名?
还是 My\Full\classname 是个路径?

My\Full\classname 这个空间再哪里写着?或者  MyFull 这个空间路径在哪?

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

问题2:
use My\Full\Classname 之后能干嘛?

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

我写了下面俩文件:

登录后复制
登录后复制
登录后复制
登录后复制

为什么输出不了 aValue???

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

use Project\Model\Table;
$table = new Table();
登录后复制

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

$table = new \Project\Model\Table();
登录后复制

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

use const yangbin\a\aValue;
echo aValue;
登录后复制

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

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

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

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

08-23 12:23