The content shared with you in this article is about how PHP variables are defined and how PHP works. The content is of great reference value. I hope it can help friends in need.
1. Variable definition:
What we usually learn is that a variable represents an "identifier" for the storage space and the data in it.
The variable name points to the variable value
More deeply, the variable points to an area of memory
2. The working principle of variables, through drawing analysis method-memory space
<?php //php引用变量:不同变量名指向同一地址。 //定义一个变量a,此时内存开辟了一块区域,$a指向该区域。 $a = 100; var_dump($a); //int 100 //定义变量b,将a变量的值赋值给b,此时该区域有两个变量($a和$b)指向。 $b = $a; var_dump($b); //int 100 //修改$a变量的值,php变量具有Copy On Write的特性,所以会复制并重写a所指向的区域值,此时a和b分别指向不同区域。 $a = 10; var_dump($a); //int 10 var_dump($b); //int 100 //------------------------------------------------------------------ $c = 100; $d = &$c; $c = 10; var_dump($c); //int 10 var_dump($d); //int 10 //当引用指向时,php变量不在具有COW特性,且指向同一内存区域。 //* unset()只能消除变量的引用,不能删除其内存分配的空间 //------------------------------------------------------------------ /* 例题: 写出如下程序的输出结果: <?php $data = ['a','b','c']; foreach($data as $key=>$val){ $val = &$data[$key]; } 问:最终$data的值是多少? */ $data = ['a','b','c']; foreach($data as $key=>$val){ $val = &$data[$key]; print_r($data); } /* 1.$key = 0, $val = 'a', $val = &$d[0] =>'a' $data = ['a','b','c']; 2.$key = 1, $val = 'b', =>$d[0] $val = &$d[1] =>'b' $data = ['b','b','c']; 1.$key = 2, $val = 'c', =>$d[1] $val = &$d[2]=>'c' $data = ['b','c','c']; */
Related recommendations:
How to use PHP to implement the download function
The above is the detailed content of How are PHP variables defined and how does PHP work?. For more information, please follow other related articles on the PHP Chinese website!