Home  >  Article  >  Backend Development  >  Overview of use keyword in PHP, overview of PHPuse keyword_PHP tutorial

Overview of use keyword in PHP, overview of PHPuse keyword_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:22:411224browse

Overview of use keyword in PHP, overview of PHPuse keyword

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 osCommerce\OM\Core\Autoloader;
use osCommerce\OM\Core\OSCOM;

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 alias methods (or references):

1. Give a class an alias

2. Give an alias to an interface

3. Give an alias to 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

<&#63;php
namespacefoo;
useMy\Full\ClassnameasAnother;

//thisisthesameasuseMy\Full\NSnameasNSname
useMy\Full\NSname;

//importingaglobalclass
useArrayObject;

$obj=newnamespace\Another;//instantiatesobjectofclassfoo\Another
$obj=newAnother;//instantiatesobjectofclassMy\Full\Classname
NSname\subns\func();//callsfunctionMy\Full\NSname\subns\func
$a=newArrayObject(array(1));//instantiatesobjectofclassArrayObject
//withoutthe"useArrayObject"wewouldinstantiateanobjectofclassfoo\ArrayObject
&#63;>

One thing to note is that for named names, the full name includes the separator, such as FooBar, and FooBar cannot be used, and the "" in the header of "FooBar" is unnecessary. It is also not recommended to write like this. The imported name must be the full name and have no programmatic relationship with the current namespace.

PHP can also declare multiple declarations on the same line, which is equivalent to the above writing

<&#63;php
useMy\Full\ClassnameasAnother,My\Full\NSname;

$obj=newAnother;//instantiatesobjectofclassMy\Full\Classname
NSname\subns\func();//callsfunctionMy\Full\NSname\subns\func
&#63;>

It is also worth mentioning that the introduction is executed at compile time, so the alias will not affect the dynamic class , for example:

<&#63;php
useMy\Full\ClassnameasAnother,My\Full\NSname;

$obj=newAnother;//instantiatesobjectofclassMy\Full\Classname
$a = 'Another';
$obj = New $a; // instantiates object of class Another
&#63;>

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 follow subsequent related articles on this site.

php use php namespace What is going on

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>>

What are the keywords in php?

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

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/846189.htmlTechArticleOverview of use keywords in PHP, overview of PHPuse keywords. Many open source systems such as the osCommerce framework will have them in their source code Find the use keyword in the osCommerce framework, such as in the index.php file...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn