php 引用變數

2021-09-24 07:35:23 字數 1404 閱讀 4271

定義:不同變數名指向同一變數內容(位址)

符號:&

<?php

//定義變數$a,記憶體開闢乙個空間儲存'a',$a指向該空間

$a = 'a';

//定義變數$b,因為cow(copy on write)特性,$a,$b都引向'a'

$b = $a;

//如果改變$a的值,記憶體又開闢空間儲存,$a指向該空間。此時$b還是指向原來的空間

$a = 'hello';

//可以使用xdebug_debug_zval('a')檢查,需要擴充套件xdebug

//--------------------------

$c = 'bbq';

//使用引用變數,$a,$b都引向'a'

$d = &$c;

$c = 'test';

echo

$d ; //'test'使用引用傳遞

//引用變數使用unset(),只會銷毀變數名,不會銷毀內間

unset($d);

echo

$c; //'test' 值依然存在

//-------------------------

//物件本身就是引用傳遞

class ob

$obj1 = new ob;

$obj2 = $obj1;

echo

$obj2->name;

$obj2->name = 'hh';

echo

$obj1->name;//如果建立乙個新的物件,需要使用clone

//-------考題--------

$arr = ['a','b','c'];

foreach($arr as $k => $v)

//問題最終的結果及每次迴圈的值

//第一次,$v、$arr[0]引用傳遞,都指向'a'

//$k => 0

//$v => 'a'

//$arr[0] => 'a'

//$arr = ['a','b','c']

//第二次,$v、$arr[1]引用傳遞,都指向'b'

//$k => 1

//$v => 'b',$v、$arr[0]引用傳遞,此時$arr[0]=>'b'

//$arr[1] => 'b'

//$arr = ['b','b','c']

//第三次,$v、$arr[2]引用傳遞,都指向'c'

//$k => 2

//$v => 'c'

$v、$arr[1]引用傳遞,此時$arr[1]=>'c'

//$arr[2] => 'c'

//$arr = ['b','c','c']

複製**

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引用變數

在php中引用意味著用不同的名字訪問同乙個變數內容使用 符號 定義變數 a range 0 100 var dump memory get usage int 399112 xdebug debug zval a a refcount 1,is ref 0 recount表示變數指向的記憶體位址引用...

php引用變數

php引用變數的概念和定義方式 概念 在php中引用意味著不同的名字訪問同乙個變數內容。定義方式 使用 符號 工作原理 header content type text html charset utf 8 定義乙個變數a a range 0,100 var dump memory get usag...