PHP 中命名空间 use 关键字的疑惑
淡淡烟草味
淡淡烟草味 2017-05-16 13:13:36
0
4
605

在 PHP 5.3之后加入了use来引用命名空间,
然后就出现了比如:

use Tool\tool;

new tool();

这样简化的操作。

然而,我知道不使用use,命名空间的三种被调用方式:

1、非限定方式 new tool()
2、限定方式 new Tool\tool()
3、完全限定方式 new \Tool\tool()

现在我理解了不需要use引入命名空间的操作方式,即上面3中方式。那么问题就是:

use Tool\tool;
与
use \Tool\tool;

区别在哪里?资料也是查找不到的。求助

============================ 问题已解决,答案如下 ======================================

前导的反斜杠是不必要的也不推荐的,因为导入的名称必须是完全限定的,不会根据当前的命名空间作相对解析。

淡淡烟草味
淡淡烟草味

全員に返信(4)
洪涛

写真に示すように:

アドレスを添付します: http://php.net/manual/zh/lang...

添付テキスト:

名前空間内の名前 (FooBar などの名前空間区切り文字を含む完全修飾名、および FooBar などの名前空間区切り文字を含まない相対グローバル名) の場合、インポートされた名前は完全である必要があるため、先頭のバックスラッシュは不要で使用できないことに注意してください。修飾されており、現在の名前空間に関連して解決されません。

したがって、違いはなく、root を書くことはお勧めできません。

@wujunze
@anonymous66
@corki

いいねを押す +0
刘奇

使う

インポートされた名前は完全修飾されている必要があり、現在の名前空間を基準にして解決されないため、先頭のバックスラッシュは不要であり、推奨されません。

いいねを押す +0
仅有的幸福

修飾されたメソッドと非修飾されたメソッドは、ファイルをインポートするときの相対パスとファイルをインポートするときの絶対パスの違いとして理解できると思います。それらは少し同じです。正しく理解できているかわかりませんが、修正してください。

いいねを押す +0
洪涛

use Tooltoolはプロジェクトのルート名前空間から始まります

use Tooltool 現在のディレクトリの名前空間から開始します

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!