Какая разница между этими двумя:
use Exception;
use \Exception;
Или те:
use Foo\Bar;
use \Foo\Bar;
manual говорит:
Обратите внимание, что для имен с именами (полностью имена имен имен, содержащие разделитель пространства имен, например Foo\Bar в отличие от глобальных имен, которые делают не, например, FooBar), ведущий обратная косая черта не нужна, а не разрешено, так как имена импорта должны быть полностью квалифицированы и не обрабатываются относительно текущего пространства имен.
Но я действительно не понимаю этого, так как все вышеперечисленные варианты работают, т.е. он определенно не "не разрешен".
Взгляд в zend_do_use
показал, что is_global
(если при наличии ведущей обратной косой черты) используется только для предупреждения в следующем случае:
namespace {
use Exception;
}
Что говорит мне: "Инструкция использования с не-составным именем" Исключение "не имеет никакого эффекта". (Хотя делать то же самое с use \Exception
было бы так же мало, но не предупреждало.)
Итак: я что-то упустил? Есть ли какая-то разница?