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.
C++就有你想要的using namespace xxx
。
為啥PHP不直接引入整個(gè)命名空間,這大概參與設(shè)計(jì)的人才知道了。
我猜原因是避免一次引入過(guò)多不需要的東西,批量引入在各種語(yǔ)言中都是不推薦的。
精確到類(lèi)可以提高性能。若只是精確到某個(gè)目錄,每次加載類(lèi)的時(shí)候,編譯器仍然需要去目錄中尋找該類(lèi)是否存在。
精確到類(lèi)可以避免沖突,若2個(gè)目錄存在相同的類(lèi)名,若精確到類(lèi),則很好的對(duì)沖突進(jìn)行避免。
易于優(yōu)化,C#擁有樓主所說(shuō)的特性,但是C#是直接編譯成可執(zhí)行文件,但是java則采取的是精確到類(lèi)的做法,同為解釋型語(yǔ)言,這樣做的好處是有利于后期的解釋優(yōu)化,讓類(lèi)能精準(zhǔn)的被找到,減少緩存的消耗。
可以 use 一個(gè)類(lèi),也可以 use 一個(gè)命名空間
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();
要是你那樣寫(xiě),勢(shì)必會(huì)讓autoload
找不到這個(gè)文件。如果是手動(dòng)載入文件的,從命名空間的理解出發(fā)也必須要那樣寫(xiě)。而且我覺(jué)得提問(wèn)的那個(gè)排版應(yīng)該是namespace Company\Tool;
吧