国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[基礎篇]PHP引用變量

SunZhaopeng / 841人閱讀

摘要:概述該文章主要從內存空間上簡述中引用變量的基本概念工作方式,以及一個常見的實例。概念什么是引用變量,在當中,用什么符號定義引用變量不同的名字訪問同一個變量內容,使用表示。

概述

該文章主要從內存空間上簡述PHP中引用變量的基本概念、工作方式,以及一個常見的demo實例。

概念

什么是引用變量,在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());

運行結果:

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

$a被賦值時在內存中占據A內存空間,$b=&$a$b指向同一內存空間,當$a發生改變時$b所占據的內存空間會跟隨$a變化
unset
unset() 只會取消引用不會銷毀空間
$a=1;
$b=&$a;
unset($b);
echo $a;

輸出結果:1

內存空間分析:

$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");

運行結果:

結果分析:

對象被實例后經引用傳遞之后$p1 $p2指向的始終是同一內存空間
案例
      $val)
     {
          $val = &$data[$key];
     }
    var_dump($data);
    

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

內存變化及解析:

感謝

感謝你看到這里,希望本篇可以幫到你。有問題可在評論區留言,謝謝

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29405.html

相關文章

  • PHPer面試指南-PHP

    摘要:本書的地址篇收集了一些常見的基礎進階面試題,基礎的面試題不再作答。如何實現持久化持久化,將在內存中的的狀態保存到硬盤中,相當于備份數據庫狀態。相當于備份數據庫接收到的命令,所有被寫入的命令都是以的協議格式來保存的。 本書的 GitHub 地址:https://github.com/todayqq/PH... PHP 篇收集了一些常見的基礎、進階面試題,基礎的面試題不再作答。 基礎篇 ...

    stackvoid 評論0 收藏0
  • Nginx基礎(2)- Nginx基本配置文件和變量詳解

    摘要:基本配置文件和變量詳解基本配置文件運行的用戶進程數,建議設置為等于總核心數。允許客戶端請求的最大單文件字節數。如果主體超過緩沖區大小,則完整主體或其一部分將寫入臨時文件。該指令在配置的,和區塊使用。 Nginx基本配置文件和變量詳解 1. 基本配置文件 /etc/nginx/nginx.conf # nginx運行的用戶 user nginx; # nginx進程數,建議設置為等于C...

    TZLLOG 評論0 收藏0
  • Nginx基礎(2)- Nginx基本配置文件和變量詳解

    摘要:基本配置文件和變量詳解基本配置文件運行的用戶進程數,建議設置為等于總核心數。允許客戶端請求的最大單文件字節數。如果主體超過緩沖區大小,則完整主體或其一部分將寫入臨時文件。該指令在配置的,和區塊使用。 Nginx基本配置文件和變量詳解 1. 基本配置文件 /etc/nginx/nginx.conf # nginx運行的用戶 user nginx; # nginx進程數,建議設置為等于C...

    hss01248 評論0 收藏0
  • PHP回收周期

    摘要:原文回收周期,增加一篇論文在底部。就是說,僅僅在引用計數減少到非零值時,才會產生垃圾周期。如果他們是循環引用周期的一部分,將永不能被清除進而導致內存泄漏。這個函數將返回使用這個算法回收的周期數。引用計數系統中的同步周期回收 原文:回收周期(Collecting Cycles) ,增加一篇論文在底部。 以下過程僅對數組和對象類型起作用。 傳統上,像以前的 php 用到的引用計數內存機制,...

    Astrian 評論0 收藏0

發表評論

0條評論

SunZhaopeng

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<