在php中引用意味著用不同的名字訪問同乙個變數內容使用&
符號
<?php
//定義變數$a=
range(0
,100);
var_dump
(memory_get_usage()
);//int(399112)
xdebug_debug_zval
('a');
//a:(refcount=1, is_ref=0) //recount表示變數指向的記憶體位址引用個數 is_ref表示是不是引用
//定義另乙個變數,將a變數賦值給a
//cow機制$a=
$a;var_dump
(memory_get_usage()
);//int(399112)
xdebug_debug_zval
('a');
//(refcount=2, is_ref=0)
xdebug_debug_zval
('a');
//(refcount=2, is_ref=0)
//對a變數重新賦值$a=
range(0
,100);
var_dump
(memory_get_usage()
);//int(407360)
xdebug_debug_zval
('a');
//(refcount=1, is_ref=0)
xdebug_debug_zval
('a');
//(refcount=1, is_ref=0)
<?php
//定義變數$a=
range(0
,100);
var_dump
(memory_get_usage()
);//int(399112)
xdebug_debug_zval
('a');
//a:(refcount=1, is_ref=0)
//定義另乙個變數,將a變數賦值給a
//cow機制$a=
&$a;var_dump
(memory_get_usage()
);//int(399136)
xdebug_debug_zval
('a');
//(refcount=2, is_ref=1)
xdebug_debug_zval
('a');
//(refcount=2, is_ref=1)
//對a變數重新賦值$a=
range(0
,100);
var_dump
(memory_get_usage()
);//int(399136)
xdebug_debug_zval
('a');
//(refcount=2, is_ref=1)
xdebug_debug_zval
('a');
//(refcount=2, is_ref=1)
<?php$a=
1;$a=
&$a;unset($a
);echo$a;
//1
<?php
//寫出如下程式的輸出結果$d=
['a'
,'b'
,'c'];
foreach($d
as$k
=>$v)
array(3)
array(3)
*/}/*
array(3)
*///程式執行時,每一次迴圈結束後變數 $d 的值是什麼?請解釋。
//程式執行完成後,變數 $d 的值是什麼?請解釋。
/*step1 : $k = 1,$d = ['a', 'b', 'c'],$v=a, $v=$d[1];
step2 : $k = 2,$d = ['b', 'b', 'c'],$v=b, $v=$d[2];
step2 : $k = 3,$d = ['b', 'c', 'c'],$v=c, $v=$d[3];
*/
php引用變數
php引用變數 cow copy on write php變數在賦值的時候不會新開闢乙個記憶體空間,只有在變數有改變操作的時候才會開闢新的記憶體空間 定義變數a a range 0,10000 var dump memory get usage 將變數a賦值給變數b b a var dump mem...
php 引用變數
定義 不同變數名指向同一變數內容 位址 符號 定義變數 a,記憶體開闢乙個空間儲存 a a指向該空間 a a 定義變數 b,因為cow copy on write 特性,a,b都引向 a b a 如果改變 a的值,記憶體又開闢空間儲存,a指向該空間。此時 b還是指向原來的空間 a hello 可以使...
php引用變數
php引用變數的概念和定義方式 概念 在php中引用意味著不同的名字訪問同乙個變數內容。定義方式 使用 符號 工作原理 header content type text html charset utf 8 定義乙個變數a a range 0,100 var dump memory get usag...