国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

什么是php引用變量?PHP中引用是如何實現

2020-03-22 18:30:00
字體:
來源:轉載
供稿:網友
這篇文章給大家介紹的內容是關于 什么是php引用變量?PHP中引用是如何實現,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

概念:

引用:在PHP中,不同的變量名字訪問同一個變量的內容,成為引用,用&符號表示。

引用工作原理:

(1)PHP在內存中存儲的原理:

<?php    $a = range(1, 100);    $b = $a; ?>

因為PHP中存在COW(Copy On Write)機制,所以

a; 以上代碼在內存中可表示為下圖:
這里寫圖片描述

只有當對

a的存儲,此時會重新開辟一個空間;這就是PHP的COW機制。即:

<?php    $a = range(1, 100);       $b = $a;        $a = range(1, 100);?>

這樣雖然沒有改變

a。可以用html' target='_blank'>PHP函數 memory_get_usage() 查看內存使用情況用以證明。

(2)PHP中引用的實現原理

<?php    $a = range(1, 100);        $b = &$a;?>

此時因為有引用(&),則在內存中

a最開始分配的內存,并且是不會改變的,此時 這里寫圖片描述

然后如果此時改變$a的值:

<?php    $a = range(1, 100);    memory_get_usage();        $b = &$a;    memory_get_usage();        $a = range(1,1000);    memory_get_usage();?>

這里寫圖片描述
可以看到內存中不會重新開辟一塊空間,因為引用是將這塊地址永遠的分配給了

b,所以改變

a和$b的值都會改變。也可用memory_get_usage()函數進行查看。

(3)PHP中的zval結構體(變量容器)

我們知道PHP中的變量都是存儲在zval結構體中的,引用也可以通過查看zval結構體中的存儲情況去查看。

<?php    $a = range(1, 100);    xdebug_debug_zval('a');        $b = &$a;?>

在使用xdebug_debug_zval();函數需要安裝PHP的xdebug擴展。

相關文章推薦:

php7和php5有什么不同之處?php5與php7之間的對比

PHP中時間函數strtotime() 函數的原理講解

以上就是什么是php引用變量?PHP中引用是如何實現的詳細內容,更多請關注 其它相關文章!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 五台县| 平陆县| 洞口县| 富源县| 北流市| 宜良县| 红原县| 德格县| 乐陵市| 额尔古纳市| 靖宇县| 龙口市| 凌云县| 友谊县| 宁波市| 苏尼特右旗| 房产| 和田县| 中山市| 桓仁| 沙湾县| 延长县| 滨海县| 互助| 新乡县| 九龙坡区| 灵寿县| 忻州市| 新蔡县| 泸溪县| 新和县| 梨树县| 崇左市| 江门市| 苏州市| 麻江县| 金华市| 岐山县| 湟中县| 蓬溪县| 邻水|