8

頻繁にバックスラッシュを使用しないようにする方法はありますか?

名前空間を使用していて、その中でグローバルなものを呼び出す場合は、バックスラッシュを使用する必要があります。

namespace foo;
$a = new \my\name(); // instantiates "my\name" class
echo \strlen('hi'); // calls function "strlen"
$a = \INI_ALL; // $a is set to the value of constant "INI_ALL"

その場合、名前空間内のコードは本当に醜くなります、その状況を回避する方法はありますか?

例はそのURLから取られました:http ://www.php.net/manual/en/language.namespaces.faq.php

しかし、名前空間から組み込みクラスを呼び出す必要がある場合、名前の前にバックスラッシュを使用する必要があるという私の問題は、どういうわけかそれを回避できますか?

4

1 に答える 1

8

グローバル名前空間の定数と関数の先頭にバックスラッシュを付ける必要はありません。PHP は、独自のグローバル名前空間にフォールバックします。PHPマニュアルには、これを説明する章全体があります。

名前空間内で、PHP がクラス名、関数、または定数コンテキストで修飾されていない Name に遭遇すると、これらを異なる優先度で解決します。クラス名は常に現在のネームスペース名に解決されます。[…] 関数と定数の場合、名前空間付きの関数または定数が存在しない場合、PHP はグローバル関数または定数にフォールバックします。

于 2012-08-28T10:23:14.427 に答える