|
導讀網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立... 網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立在超文本基礎之上的。超級文本標記語言之所以稱為超文本標記語言,是因為文本中包含了所謂“超級鏈接”點。 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());運行結果:
內存在第一次和第二次并沒有太大的差異,第三次產生較大差異 使用 & $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());運行結果:
在使用引用傳值內存解析分析:
unset
$a=1; $b=&$a; unset($b); echo $a; 輸出結果: 內存空間分析:
$a被賦值 $b=&$a之后$a與$b直行同一內存空間,當unset($b)時取消了$b對$a的引用,使$b不在指向$a的內存空間 題外話對象本身就是引用傳遞 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');運行結果:
結果分析:
對象被實例后經引用傳遞之后 案例 <?php
$data = ['a', 'b', 'c'];
foreach($data as $key => $val)
{
$val = &$data[$key];
}
var_dump($data);寫出如上程序的輸出結果? 內存變化及解析:
相關推薦: 以上就是php引用變量是什么?php引用變量的實例講解的詳細內容,更多請關注php中文網其它相關文章! 網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。 |
溫馨提示:喜歡本站的話,請收藏一下本站!