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

首頁 > 編程 > PHP > 正文

php引用變量是什么?php引用變量的實例講解

2020-03-22 19:09:03
字體:
來源:轉載
供稿:網友
php引用變量是什么?如何定義引用變量?本篇文章將從內存空間上簡述PHP中引用變量的基本概念、工作方式,以及一個常見的實例。

概念

什么是引用變量,在PHP當中,用什么符號定義引用變量?

不同的名字訪問同一個變量內容,使用 表示。

COW(copy on write)

內存優化的常見手段,在php中也采用了這種方式來優化內存。

寫時復制,即只有當對其中一個或多個變量進行寫操作的時候,才會復制一份內存,對其內容進行修改。

在PHP中使用memory_get_usage()觀察內存變化

演示

未使用 (引用變量)

 $a = range(0,1000); var_dump(memory_get_usage()); $b = $a;` var_dump(memory_get_usage()); $a = range(0,1000); var_dump(memory_get_usage());

運行結果:

13842967-5b9347b7cd7e2_articlex.png

內存在第一次和第二次并沒有太大的差異,第三次產生較大差異

使用

 $a = range(0,1000); var_dump(memory_get_usage()); $b =  var_dump(memory_get_usage()); $a = range(0,1000); var_dump(memory_get_usage());

運行結果:

3740263286-5b93486a80dc8_articlex.png

在使用引用傳值內存解析分析:

4023705487-5b935eef3f922_articlex.png

$a被賦值時在內存中占據A內存空間,$b= $a 時$b指向同一內存空間,當$a發生改變時$b所占據的內存空間會跟隨$a變化

unset

unset() 只會取消引用不會銷毀空間

$a=1;unset($b);echo $a;

輸出結果:1

內存空間分析:

4023705487-5b935eef3f922_articlex.png

$a被賦值 $b= $a之后$a與$b直行同一內存空間,當unset($b)時取消了$b對$a的引用,使$b不在指向$a的內存空間

題外話

對象本身就是引用傳遞

html' target='_blank'>class Person public $name= zhangsan $p1 =new Person;xdebug_debug_zval( p1 $p2 =$p1;xdebug_debug_zval( p1 $p2- name= lisi xdebug_debug_zval( p1 

運行結果:

607629595-5b9365ed49e15_articlex.png

結果分析:

2114888040-5b936240ab956_articlex.png

對象被實例后經引用傳遞之后$p1 $p2指向的始終是同一內存空間案例
 ?php $data = [ a , b , c  foreach($data as $key = $val) $val = $data[$key]; var_dump($data);

寫出如上程序的輸出結果?
程序運行時,每一次循環結束后變量$data的值是什么?
程序執行完成后,變量$data的值是什么?

內存變化及解析:

4213969293-5b936b81e2d17_articlex.png

相關推薦:

php變量引用與對象引用詳解介紹_PHP教程

php變量引用與對象引用詳解介紹

以上就是php引用變量是什么?php引用變量的實例講解的詳細內容,PHP教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 星子县| 津市市| 武山县| 扶绥县| 康保县| 黔西| 贵德县| 老河口市| 玉环县| 南投市| 蒲江县| 密山市| 九龙县| 武义县| 梁山县| 廊坊市| 永和县| 通辽市| 娄烦县| 富裕县| 武汉市| 大田县| 凌源市| 巴里| 萍乡市| 福安市| 颍上县| 安塞县| 嘉兴市| 乌鲁木齐县| 临西县| 固镇县| 内乡县| 蕉岭县| 璧山县| 永修县| 湖南省| 西丰县| 阳新县| 金溪县| 安达市|