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