PHP
语言参考 | Language Reference

Using namespaces: fallback to global function/constant

Using namespaces: fallback to global function/constant

(PHP 5 >= 5.3.0, PHP 7)

Inside a namespace, when PHP encounters an unqualified Name in a class name, function or constant context, it resolves these with different priorities. Class names always resolve to the current namespace name. Thus to access internal or non-namespaced user classes, one must refer to them with their fully qualified Name as in:

Example #1 Accessing global classes inside a namespace

<?php namespace A\B\C; class Exception extends \Exception {} $a = new Exception('hi' // $a is an object of class A\B\C\Exception $b = new \Exception('hi' // $b is an object of class Exception $c = new ArrayObject; // fatal error, class A\B\C\ArrayObject not found ?>

For functions and constants, PHP will fall back to global functions or constants if a namespaced function or constant does not exist.

Example #2 global functions/constants fallback inside a namespace

<?php namespace A\B\C; const E_ERROR = 45; function strlen($str) {     return \strlen($str) - 1; } echo E_ERROR, "\n"; // prints "45" echo INI_ALL, "\n"; // prints "7" - falls back to global INI_ALL echo strlen('hi'), "\n"; // prints "1" if (is_array('hi')) { // prints "is not array"     echo "is array\n"; } else {     echo "is not array\n"; } ?>

← Global space

Name resolution rules →

© 1997–2017 The PHP Documentation Group

Licensed under the Creative Commons Attribution License v3.0 or later.

https://secure.php.net/manual/en/language.namespaces.fallback.php