What are php reference variables? How to implement references in PHP

不言
Release: 2023-04-03 16:44:01
Original
4690 people have browsed it

This article introduces to you what is a PHP reference variable? How to implement references in PHP has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

Concept:

Reference: In PHP, different variable names access the content of the same variable, which becomes a reference and is represented by the & symbol.

Quote working principle:

(1) Principle of PHP storage in memory:

<?php
    $a = range(1, 100);    $b = $a;
 ?>
Copy after login

Because there is a COW (Copy On Write) mechanism in PHP, so

a; The above code can be represented as the following picture in memory:
What are php reference variables? How to implement references in PHP

Only when # The storage of

##a will be re-opened at this time; this is PHP's COW mechanism. That is:

<?php
    $a = range(1, 100);   
    $b = $a;    
    $a = range(1, 100);
?>
Copy after login

Although this does not change

a. You can use the PHP function memory_get_usage() to check the memory usage to prove it.

(2) Implementation principle of references in PHP

<?php
    $a = range(1, 100);    
    $b = &$a;
?>
Copy after login

At this time, because there is a reference (&), it is in the memory

a is the memory allocated initially and will not change. At this time

What are php reference variables? How to implement references in PHP

Then if the value of $a is changed at this time:

<?php
    $a = range(1, 100);
    memory_get_usage();    
    $b = &$a;
    memory_get_usage();    
    $a = range(1,1000);
    memory_get_usage();?>
Copy after login

What are php reference variables? How to implement references in PHPYou can see that a space will not be re-opened in the memory, because the reference permanently assigns this address to

b, so changing the values ​​of

##a and $b will change. You can also use the memory_get_usage() function to view it.

(3) zval structure (variable container) in PHP

We know that variables in PHP are stored in the zval structure, and references can also be viewed in the zval structure Check the storage status.

<?php
    $a = range(1, 100);
    xdebug_debug_zval(&#39;a&#39;);    
    $b = &$a;
?>
Copy after login

When using the xdebug_debug_zval(); function, you need to install the PHP xdebug extension.

Recommended related articles:

What are the differences between php7 and php5? Comparison between php5 and php7

Explanation of the principle of the time function strtotime() function in PHP

The above is the detailed content of What are php reference variables? How to implement references in PHP. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!