Heim > Fragen und Antworten > Hauptteil
Der Code unter der Datei Tool.class.php lautet:
Namespace CompanyTool;
Klasse Werkzeug{
}
Meine Frage ist, warum Sie, wenn Sie die Tool-Klasse in anderen Dateien verwenden, so schreiben müssen: use CompanyToolTool
Ich dachte, es würde ausreichen, einfach CompanyTool zu verwenden (was meines Wissens bedeutet, dass Sie jede Klasse in diesem Bereich verwenden können).
Ich hoffe, jeder kann es mir sagen, danke.
巴扎黑2017-06-06 09:55:57
C++就有你想要的using namespace xxx
。
为啥PHP不直接引入整个命名空间,这大概参与设计的人才知道了。
我猜原因是避免一次引入过多不需要的东西,批量引入在各种语言中都是不推荐的。
ringa_lee2017-06-06 09:55:57
精确到类可以提高性能。若只是精确到某个目录,每次加载类的时候,编译器仍然需要去目录中寻找该类是否存在。
精确到类可以避免冲突,若2个目录存在相同的类名,若精确到类,则很好的对冲突进行避免。
易于优化,C#拥有楼主所说的特性,但是C#是直接编译成可执行文件,但是java则采取的是精确到类的做法,同为解释型语言,这样做的好处是有利于后期的解释优化,让类能精准的被找到,减少缓存的消耗。
PHPz2017-06-06 09:55:57
可以 use 一个类,也可以 use 一个命名空间
namespace A;
class B
{
public function test() {}
}
引用
namespace C;
use A;
$b = new A\B();
$b->test();
或者
namespace C;
use A\B;
$b = new B();
$b->test();
要是你那样写,势必会让autoload
找不到这个文件。如果是手动载入文件的,从命名空间的理解出发也必须要那样写。而且我觉得提问的那个排版应该是namespace Company\Tool;
吧