Complete usage of PHP command space
We know that in namespaceone of the clearest purposes is to solve the problem of duplicate names, so in PHP, two functions or classes are not allowed to have the same name, otherwise a fatal error will occur. . In this case, it can be solved as long as you avoid naming duplication. The most common way is to agree on a prefix.
The purpose of using namespace:
According to my personal understanding, when using the required class, it needs to be introduced by require or include first, so the premise for a class redefinition error to occur is: two classes with the same name have be introduced. Currently, some PHP frameworks will Combined with the usage methods to further understand its purpose. How to use namespace:In order to test, I will create 3 files: 1.php and name.php (this file is used to perform testing), which will not be explained later. Please note the code changes yourself. 1. The definition of the name after namespace is not case-sensitivenamespace one; namespace One;
namespace ONE;
//1.php class Person{ function construct(){ echo 'I am one!'; } } //name.php require_once './1.php'; new Person(); //输出 I am one!; new \Person(); //输出 I am one!;
//name.php require_once './1.php'; new /Person(); // 代码报错:Parse error: syntax error, unexpected '/'
/1.php namespace one; class Person{ function construct(){ echo 'I am one!'; } } //name.php require_once './1.php'; new \one\Person(); //输出 I am one!; new \Person(); //代码报错:Fatal error: Class 'Person' not found
//1.php namespace one; class Person{ function construct(){ echo 'I am one!'; } } //name.php namespace test; require './1.php'; new \one\Person(); //输出 I am one!; new Person(); //这里结果会是什么呢,猜猜看
Fatal error: Class 'test\Person' not found
new \Person();
Fatal error: Class 'Person' not found
//name.php namespace test; require './1.php'; class Person{ function construct(){ echo 'I am test!'; } } new \one\Person(); //输出 I am one!; new Person(); //这里结果会是什么,自己猜猜看
//name.php namespace test; namespace one; class Person{ function construct(){ echo 'I am one!'; } } class Person{ function construct(){ echo 'I am test!'; } }
//name.php namespace test\person; class Person{ function construct(){ echo 'I am test!'; }
//name.php namespace test; echo 'zhai14'; namespace zhai; require './1.php';
php namespacenamespace has come to an end, let’s talk about the use of use.
使用use的目的:
在命名空间字符串过长时,使用use可以相应的缩短命名空间。
use的使用方法:
1.new类时,最前面无需用反斜杠。此外,use后没有as时,缩短的命名空间默认为最后一个反斜杠后的内容。
//name.php namespace animal\dog; class Life{ function construct(){ echo 'dog life!'; } } namespace animal\cat; class Life{ function construct(){ echo 'cat life!'; } } new Life(); //按照代码执行顺序,这里默认animal\cat这个命名空间 new \animal\dog\Life(); //A use animal\dog; //a new dog\Life(); //B use animal\dog as d; //b new d\Life();
通过A、B行代码比较,需要注意:
使用use后,new类时,最前面没有反斜杠。
没使用use时,命名空间最前面有反斜杠
通过a、b行代码比较,可以理解:
use后没有as时,缩短的命名空间默认为最后一个反斜杠后的内容。如上的:
use animal\dog;
相当于
use animal\dog as dog;
2.namespace后面不建议加类名,但use后可以。
//name.php namespace animal\dog; class Life{ function construct(){ echo 'dog life!'; } } namespace animal\cat; class Life{ function construct(){ echo 'cat life!'; } } use animal\dog\Life as dog; new dog();
如上所示,use后加上类名后,就相当于把类改了个名称:由Life改为dog了。
上面不用as dog就会报错:
Fatal error: Cannot use animal\dog\Life as Life because the name is already in use
因为cat下也有个一样名称的Life类。
可以理解为,使用use后,这个昵称对应的类只能归当前命名空间占有,其它命名空间下不允许存在该类。
//name.php namespace animal\dog; class Life{ function construct(){ echo 'dog life!'; } } class Dog{ function construct(){ echo 'dog in dog!'; } } namespace animal\cat; // class Dog{ // function construct(){ // echo 'dog in cat!'; // } // } class Life{ function construct(){ echo 'cat life!'; } } use animal\dog; new dog\Dog();
如上,使用了
use animal\dog; cat
通过上面代码,我想使用use的目的效果(缩短命名空间名称)就很明显了。
简单总结一下:
namespace就是划分领域的作用,代表这些东西是属于某个命名空间下的。
相信看了这些案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
相关阅读:
The above is the detailed content of Complete usage of PHP command space. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
