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; ?>
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:
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); ?>
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; ?>
a is the memory allocated initially and will not change. At this time 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();?>
You can see that a space will not be re-opened in the memory, because the reference permanently assigns this address to
##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('a'); $b = &$a; ?>
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 php7Explanation of the principle of the time function strtotime() function in PHPThe 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!