Home Backend Development PHP Problem What does value passing mean in php

What does value passing mean in php

Jan 28, 2023 pm 06:41 PM
php

In PHP, value passing means copying the actual parameters when calling a function and then passing them to the formal parameters of the function. In fact, the formal parameters and actual parameters occupy different storage units respectively. The characteristic of value transfer is one-way transfer, that is, when the calling function is called, a storage unit is allocated to the formal parameter, and the value of the actual parameter is passed to the formal parameter. After the call is completed, the storage unit of the formal parameter is released, and the value of the formal parameter is Any changes will not affect the value of the actual parameter, and the storage unit of the actual parameter still retains and maintains its value unchanged.

What does value passing mean in php

The operating environment of this tutorial: windows7 system, PHP8 version, DELL G3 computer

When calling a function, parameters need to be passed to the function. The parameters passed into the function are called actual parameters, while the parameters defined by the function are called formal parameters. There are four ways to pass parameters to a function, namely passing by value, passing by reference, default parameters and variable length parameters.

Value passing

Value passing is the default value passing method for functions in PHP, also known as "copy passing by value". As the name suggests, the value passing method will copy the value of the actual parameter and then pass it to the formal parameter of the function, so operating the value of the parameter in the function will not affect the actual parameters outside the function. Therefore, if you do not want the function to modify the value of the actual parameter, you can pass it by value.

The characteristic of value transfer is one-way transfer, that is, when the calling function is called, a storage unit is allocated to the formal parameter, and the value of the actual parameter is transferred to the formal parameter. After the call is completed, the formal parameter is stored The unit is released, and any change in the formal parameter value will not affect the value of the actual parameter. The storage unit of the actual parameter still retains and maintains the value unchanged.

[Example] Define a simple function below. The function has two parameters, and the values ​​of the parameters are exchanged in the function.

<?php
    function swap($a, $b){
        echo &#39;函数内,交换前 $a = &#39;.$a.&#39;, $b = &#39;.$b.&#39;<br>&#39;;
        $temp = $a;
        $a = $b;
        $b = $temp;
        echo &#39;函数内,交换后 $a = &#39;.$a.&#39;, $b = &#39;.$b.&#39;<br>&#39;;
    }
    $x = 5;
    $y = 7;
    echo &#39;函数外,交换前 $x = &#39;.$x.&#39;, $y = &#39;.$y.&#39;<br>&#39;;
    swap($x, $y);
    echo &#39;函数外,交换后 $x = &#39;.$x.&#39;, $y = &#39;.$y;
?>
Copy after login

The running results are as follows:

What does value passing mean in php

#It can be seen from the running results that within the function, the values ​​​​are indeed exchanged, but outside the function, the values ​​​​are not no change. So we can say that passing a function by value is just passing a copy of the variable. So if you want the function to be able to operate on external parameters of the function, you need to use reference passing.

Passing by reference

Passing by reference is to copy the memory address of the actual parameter and then pass it to the formal parameter of the function. Both parameters and formal parameters point to the same memory address, so the function's operation on the formal parameters will affect the actual parameters outside the function.

Passing by reference is to pass the memory address of the actual parameter to the formal parameter of the function. Therefore, the actual parameters and formal parameters point to the same memory address. At this time, all operations inside the function will affect the values ​​of the actual parameters outside the function. The method of passing by reference is to add an & symbol on the basis of value passing, as shown below:

function name (&参数1, &参数2, ..., &参数3) {
    ...    
}
Copy after login

[Example] Slightly adjust the code of the above example and use the method of passing by reference to pass to the swap function. Parameters, the code is as follows:

<?php
    function swap(&$a, &$b){
        echo &#39;函数内,交换前 $a = &#39;.$a.&#39;, $b = &#39;.$b.&#39;<br>&#39;;
        $temp = $a;
        $a = $b;
        $b = $temp;
        echo &#39;函数内,交换后 $a = &#39;.$a.&#39;, $b = &#39;.$b.&#39;<br>&#39;;
    }
    $x = 5;
    $y = 7;
    echo &#39;函数外,交换前 $x = &#39;.$x.&#39;, $y = &#39;.$y.&#39;<br>&#39;;
    swap($x, $y);
    echo &#39;函数外,交换后 $x = &#39;.$x.&#39;, $y = &#39;.$y;
?>
Copy after login

The running results are as follows:

What does value passing mean in php

The difference between php value passing and reference passing

Value transfer: within the scope of the function, changing the value of the variable will not affect the value of the variable outside the function.

Passing by reference: Within the function scope, any changes to the value are also reflected outside the function, because the memory address is passed by reference.

Type two pieces of code and you can see the difference between the two. Let’s look at the essence through the phenomenon

function sum($a){
  $a++;
  $b = $a;
  return $b;
}
$a = 10;
echo sum($a).&#39;<br />&#39;;//11
echo $a;//10
Copy after login
function sum(&$a){
  $a++;
  $b = $a;
  return $b;
}
$a = 10;
echo sum($a).&#39;<br />&#39;;//11
echo $a;//11
Copy after login

The difference between the two pieces of code lies in the parameters of the function sum. One is to pass the value $ a, and the other is passing reference &$a. The result is that the value of $a does not change after passing the value. On the contrary, the value of $a changes after passing the reference. Children who have learned C language here will understand what is going on. What is pushed on the stack is a copy of the reference.

Since the reference points to a certain variable, the operation on the reference is actually the operation on the variable it points to. (The function is the same as passing a pointer, except that there is no need to dereference) & is a symbol pointing to the address of a variable. The formal parameter &$a in the function sum is actually the actual parameter $a, so it is passed into sum for an operation. After that, the value of the actual parameter $a actually changes, that's all.

Explanation:

The value of the original parameter in pass by value remains the original value after calling other functions, while pass by reference changes the original value. When passing values ​​according to the method of passing by value, if the original value needs to be changed, the code needs to be copied. If the value is large enough or it is a large string of strings, the code will be more and more repetitive, while passing by reference will There is no need to copy PHP code, which has a great advantage in improving performance.

For more PHP related knowledge, please visit php中文网!

The above is the detailed content of What does value passing mean in php. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1670
14
PHP Tutorial
1273
29
C# Tutorial
1256
24
PHP: A Key Language for Web Development PHP: A Key Language for Web Development Apr 13, 2025 am 12:08 AM

PHP is a scripting language widely used on the server side, especially suitable for web development. 1.PHP can embed HTML, process HTTP requests and responses, and supports a variety of databases. 2.PHP is used to generate dynamic web content, process form data, access databases, etc., with strong community support and open source resources. 3. PHP is an interpreted language, and the execution process includes lexical analysis, grammatical analysis, compilation and execution. 4.PHP can be combined with MySQL for advanced applications such as user registration systems. 5. When debugging PHP, you can use functions such as error_reporting() and var_dump(). 6. Optimize PHP code to use caching mechanisms, optimize database queries and use built-in functions. 7

PHP vs. Python: Understanding the Differences PHP vs. Python: Understanding the Differences Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHP is suitable for web development, with simple syntax and high execution efficiency. 2. Python is suitable for data science and machine learning, with concise syntax and rich libraries.

PHP and Python: Comparing Two Popular Programming Languages PHP and Python: Comparing Two Popular Programming Languages Apr 14, 2025 am 12:13 AM

PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.

PHP in Action: Real-World Examples and Applications PHP in Action: Real-World Examples and Applications Apr 14, 2025 am 12:19 AM

PHP is widely used in e-commerce, content management systems and API development. 1) E-commerce: used for shopping cart function and payment processing. 2) Content management system: used for dynamic content generation and user management. 3) API development: used for RESTful API development and API security. Through performance optimization and best practices, the efficiency and maintainability of PHP applications are improved.

The Enduring Relevance of PHP: Is It Still Alive? The Enduring Relevance of PHP: Is It Still Alive? Apr 14, 2025 am 12:12 AM

PHP is still dynamic and still occupies an important position in the field of modern programming. 1) PHP's simplicity and powerful community support make it widely used in web development; 2) Its flexibility and stability make it outstanding in handling web forms, database operations and file processing; 3) PHP is constantly evolving and optimizing, suitable for beginners and experienced developers.

PHP and Python: Different Paradigms Explained PHP and Python: Different Paradigms Explained Apr 18, 2025 am 12:26 AM

PHP is mainly procedural programming, but also supports object-oriented programming (OOP); Python supports a variety of paradigms, including OOP, functional and procedural programming. PHP is suitable for web development, and Python is suitable for a variety of applications such as data analysis and machine learning.

PHP vs. Other Languages: A Comparison PHP vs. Other Languages: A Comparison Apr 13, 2025 am 12:19 AM

PHP is suitable for web development, especially in rapid development and processing dynamic content, but is not good at data science and enterprise-level applications. Compared with Python, PHP has more advantages in web development, but is not as good as Python in the field of data science; compared with Java, PHP performs worse in enterprise-level applications, but is more flexible in web development; compared with JavaScript, PHP is more concise in back-end development, but is not as good as JavaScript in front-end development.

PHP and Python: Code Examples and Comparison PHP and Python: Code Examples and Comparison Apr 15, 2025 am 12:07 AM

PHP and Python have their own advantages and disadvantages, and the choice depends on project needs and personal preferences. 1.PHP is suitable for rapid development and maintenance of large-scale web applications. 2. Python dominates the field of data science and machine learning.

See all articles