PHP變量定義及工作原理


1、變量定義:

通常學到的是,變量代表存儲空間以及其中數據的一個“標識符”。

變量名 指向 變量值

更深入的說是 變量指向內存的一塊區域

 

2、變量工作原理,通過畫圖分析法——內存空間

 

<?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'];
*/

 

以上來自代碼 https://www.cnblogs.com/luma/p/7465388.html#undefined


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM