


Decomposition of the function of adding ampersand before the function in php, php function_PHP tutorial
The decomposition of the ampersand before the function in php, php function
Needless to say, what does the ampersand sign in front of a PHP variable mean? Everyone is using it. It means that two variables point to the same address at the same time. So, what is the meaning of adding an ampersand in front of a PHP function? Below are two demonstration codes first, and then explanations.
function &chhua() { static $b="www.jb51.net";//申明一个静态变量 $b=$b."WEB开发"; echo $b; return $b; } $a=chhua();//这条语句会输出 $b的值 为“www.jb51.netWEB开发” $a="PHP"; echo "<Br>"; $a=chhua();//这条语 句会输出 $b的值 为“www.jb51.netWEB开发WEB开发” echo "<Br>"; $a=&chhua();//这条语句会输出 $b的值 为“www.jb51.netWEB开发WEB开发WEB开发” echo "<Br>"; $a="JS"; $a=chhua(); //这条语句会输出 $b的值 为"JSWEB开发" function &test() { static $b=0;//申明一个静态变量 $b=$b+1; echo $b; return $b; } $a=test();//这条语句会输出 $b的值 为1 $a=5; $a=test();//这 条语句会输出 $b的值 为2 $a=&test();//这条语句会输出 $b的值 为3 $a=5; $a=test(); //这条语句会输出 $b的值 为6
Let’s explain the second function.
In this way, $a=test(); actually does not get a function reference return, which is no different from an ordinary function call.
As for the reason: This is the regulation of PHP
PHP stipulates that what is obtained through $a=&test(); is the reference return of the function.
As for what is reference return (PHP manual says: reference return is used when you want to use a function to find which variable the reference should be bound to.)
Using the above example to explain it is
Calling a function using $a=test() only assigns the value of the function to $a, and any changes to $a will not affect $b in the function.
When calling a function through $a=&test(), its function is to compare the memory address of the $b variable in return $b with the memory address of the $a variable,
Points to the same place. That is to say, the effect is equivalent to this ($a=&b;), so changing the value of $a also changes the value of $b, so after executing:
$a=&test(); $a=5; After that, the value of $b becomes 5.
@ operator is only valid for expressions. A simple rule for beginners is: if you can get a value from somewhere, prepend it with the @ operator. For example, you can put it before variables, functions and include() calls, constants, etc. It cannot be placed before the definition of a function or class, nor can it be used in conditional structures such as if and foreach.
The current "@" error control operator prefix disables even error reporting of critical errors that cause the script to terminate. This means that if you use "@" to suppress an error message before a function call that does not exist or is of the wrong type, the script will die there without any indication of the reason.
Function reference
For function reference, the main difference lies in memory performance~
function &load_message and function load_message, the first one should also be declared as a reference with &load_message when used, and the second one should be returned as a reference Just assign the result of the function to a variable. This function is generally used for recursive functions. As for citations, it is recommended that you write a few examples yourself and test them. You understand, just looking at the literal meaning is not as good as practice. At the same time, there are many examples of php references on the Internet. You can refer to it.
By the way, there is another commonly used form of reference in PHP
which is function gao(&$id) and function gao($id)
This form of reference, we Just compare the results.
function a(&$t){
$t .= 'xx';
}
function b($t){
$t .= 'yy';
}
$x = 'aa';
b($x);
echo $x; // Output aa
a($x);
echo $x; // Output aaxx
Remember that the output here is $x, not b($x) or a($x). (Sorry for borrowing the example from cosmicdusts)
----Learn from others

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

AI Hentai Generator
Generate AI Hentai for free.

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

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

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

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

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

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.
