What's the difference between those two:
use Exception;
use \Exception;
Or those:
use Foo\Bar;
use \Foo\Bar;
The manual says:
Note that for namespaced names (fully qualified namespace names containing namespace separator, such as Foo\Bar as opposed to global names that do not, such as FooBar), the leading backslash is unnecessary and not allowed, as import names must be fully qualified, and are not processed relative to the current namespace.
But I don't really understand this, as all of the above variants work, i.e. it definitely is not "not allowed".
A look into zend_do_use
showed, that is_global
(set, when there is a leading backslash) is only used for a warning in the following case:
namespace {
use Exception;
}
Which tells me: "The use statement with non-compound name 'Exception' has no effect". (Though doing the same with use \Exception
would have just as little effect, but does not throw a warning.)
So: Am I missing something? Is there actually some difference?