すべてはタイトルにあります。でオブジェクトを作成するnew Object
と、クラスが見つからないというエラーが表示されます。しかし、私がやると、new \Object
すべてが魔法のように機能します。誰かが私を理解するのを手伝ってくれることを願っています。前もって感謝します。
1 に答える
1
便宜上、PHP はオブジェクトを異なる「カテゴリ」に「パッケージ化」または「ソート」するために名前空間をサポートするようになりました。
\
は単に「名前空間なし」でオブジェクトを使用することを意味するルート名前空間です。これは、サブ名前空間のオブジェクトが現在の名前空間とは関係のないオブジェクトを必要とする場合にのみ役立ちます。たとえば:
\HTTP\Request\Properties()
は SPL オブジェクト を拡張ArrayObject
しようとして extend ArrayObject
います。これを試みた場合、現在の名前空間は\HTTP\Request
であり、ArrayObject はルート名前空間にあるため失敗します。現在の名前空間から抜け出すには、名前空間を\
(root/break out) する必要があります。
名前空間は、Zend フレームワーク ライブラリや SwiftMailer など、さまざまなベンダー パッケージを利用したい場合に非常に役立ちます。必要なのは、すべてのベンダー パッケージの自動読み込み手順を公開し、以下に示すように作業と実装を続けることだけです。
/vendor/Zend/[zend packages]
$algos = \Zend\Crypt\Hash::getSupportedAlgorithms();
于 2013-09-27T21:19:54.083 に答える