Usage of use keyword in PHP.
In many open source systems such as the osCommerce framework, the keyword use will be found in their source code. For example, in the osCommerce framework, this source code appears in the index.php file:
use osCommerceOMCoreAutoloader;
use osCommerceOMCoreOSCOM ;
In fact, the use keyword of php was introduced from php5.3 or above. Its function is to alias an external reference. This is an important feature of namespaces, which is similar to the creation of connection flags for files or directories in Unix-based file systems.
PHP namespace supports three aliasing methods (or references):
1. Aliasing a class
2. Aliasing an interface
3. Aliasing a namespace
These three methods are all done using the use keyword. The following are examples of the three aliases:
//Example #1 importing/aliasing with the use operator
namespacefoo;
useMyFullClassnameasAnother;
//thisisthesameasuseMyFullNSnameasNSname
useMyFullNSname;
//importingaglobalclass
useArrayObject;
$obj=newnamespaceAnother;//instantiatesobjectofclassfooAnother
$obj=newAnother;//instantiatesobjectofclassMyFullClassname
NSnamesubnsfunc();//callsfunctionMyFullNSnamesubnsfunc
$a=newArrayObject(array(1));//instantiatesobjectofclassArrayObject
//withoutthe"useArrayObject"wewouldinstantiateanobjectofclassfooArrayObject
?>
One thing to note is that for named names, the full name includes delimiters, such as FooBar, and FooBar cannot be used. The "" in the header of "FooBar" is unnecessary and is not recommended to be written like this. The imported name must be fully qualified and not programmatically related to the current namespace. (www.jbxue.com Scripting School)
PHP can also declare multiple declarations on the same line, which is equivalent to the above writing method
useMyFullClassnameasAnother,MyFullNSname;
$obj=newAnother;//instantiatesobjectofclassMyFullClassname
NSnamesubnsfunc();//callsfunctionMyFullNSnamesubnsfunc
?>
It is also worth mentioning that the introduction is performed at compile time, so the alias will not affect the dynamic class, for example:
useMyFullClassnameasAnother,MyFullNSname;
$obj=newAnother;//instantiatesobjectofclassMyFullClassname
$a = 'Another';
$obj = New $a; // instantiates object of class Another
?>
Since variable $a is assigned a value of 'Another' here, $a is located in Classname during compilation.
For more detailed usage, readers can refer to the php manual or continue related articles.
1. namespace Zend\Http\PhpEnvironment;
This code defines a namespace, which you can understand as defining a domain name named Zend\Http\PhpEnvironment.
After definition, the classes, interfaces, const, etc. declared below are all in the declared "domain". When referencing an include file that declares a namespace, and if you want to call something in it, you must:
Adjust the current script to this domain name, otherwise, you have to use the full name of namesapce.
For example, inc.php file:
namespace Zend\Http\PhpEnvironment;
class Bar {}//define a class
when called by other files :
// The first way to access Foo, use the full name
require 'inc.php';
$foo = new \Zend\Http\PhpEnvironment\Bar();
//The second method of accessing Foo
namespace Foo; //Adjust the current script to the ns domain of Foo, and the namespace declaration must be in the first sentence
require 'inc.php';
$foo = new Bar();
2. The purpose of the use keyword is to use the alias of ns:
For example, the above
// is the first to access Foo This method uses the full name
require 'inc.php';
$foo = new \Zend\Http\PhpEnvironment\Bar();
After using uses, the writing is as follows:
use \Zend\Http\PhpEnvironment as pe; //Define alias
$foo = new \pe\Bar(); //Use short alias to replace original
if Omit the following as...., then you can directly replace it with the text of the last section, for example, the above:
use \Zend\Http\PhpEnvironment; //Define alias
$ foo = new \PhpEnvironment\Bar(); //Replace the original
======================== with a short alias ========================
Relevant content in the official PHP manual:
In PHP, namespace naming Space is used to solve two types of problems encountered when creating reusable code such as classes or functions when writing class libraries or applications:
1. User-written code and PHP internal classes/functions/constants Or name conflicts between third-party classes/functions/constants.
2. Create an alias (or short) name for a very long identifier name (usually defined to alleviate the first type of problem) to improve the readability of the source code.
PHP namespaces provide a way to group related classes, functions, and constants together.
PHP namespace supports two ways of using aliases or imports: using aliases for class names, or using aliases for namespace names. Aliases are implemented through the operator use. ...The rest of the text>>
Keywords are chess pieces on the chessboard. You can only use them. You cannot change them or add them yourself.
Think about it: I use my pawns as rooks and then place four knights with you. What are you doing?
So PHP won’t do it either!
I wonder if you understand?
Reference: www.gooddou.cn