首頁  >  文章  >  後端開發  >  php中變數佔記憶體嗎

php中變數佔記憶體嗎

(*-*)浩
(*-*)浩原創
2019-09-06 09:42:482441瀏覽

php中變數佔記憶體嗎

在php中儲存資料的一種方式,就是i可以改變的量,這種方式是在記憶體中開闢一個可以存放資料的空間,給這個空間一個名稱,這時候的空間可以稱為一個變數。 在運行過程中這個值是可以改變的

目前空間的名稱就是變數名,目前空間的資料(八種資料型別)就稱為變數值

#範例:(推薦學習:PHP影片教學

php版本為7.2

<?php
echo memory_get_usage() , &#39;<br>&#39;;
$start = memory_get_usage();
$a = Array();
for ($i=0; $i<1000; $i++) {
$a[$i] = $i + $i;
}
$mid = memory_get_usage();
echo memory_get_usage() , &#39;<br>&#39;;
for ($i=1000; $i<2000; $i++) {
$a[$i] = $i + $i;
}
$end = memory_get_usage();
echo memory_get_usage() , &#39;<br>&#39;;
echo &#39;argv:&#39;, ($mid - $start)/1000 ,&#39;bytes&#39; , &#39;<br>&#39;;
echo &#39;argv:&#39;,($end - $mid)/1000 ,&#39;bytes&#39; , &#39;<br>&#39;;
echo &#39;Memory:&#39;, ($mid - $start)/1024 ,&#39;k&#39; , &#39;<br>&#39;;
echo &#39;Memory:&#39;,($end - $mid)/1024 ,&#39;k&#39; , &#39;<br>&#39;;
输出是:
389336
418056
442632
argv:28.72bytes
argv:24.576bytes
Memory:28.046875k
Memory:24k

傳回目前分配給你的PHP 腳本的記憶體量,單位是位元組(byte)。

大概了解1000個元素的整數數組需要佔用28k 內存,平均每個元素佔用28 個字節

memory_get_usage() 返回的結果並不是全是被數組佔用了,還要包括一些PHP

運行本身分配的一些結構,可能用內建函數產生的數組更接近真實的空間:

<?php
$start = memory_get_usage();
$a = array_fill(0, 10000, 1);
$mid = memory_get_usage(); //10k elements array;
echo &#39;argv:&#39;, ($mid - $start )/10000,&#39;byte&#39; , &#39;<br>&#39;;
echo &#39;Memory:&#39;, ($mid - $start)/1024 ,&#39;k&#39; , &#39;<br>&#39;;
$b = array_fill(0, 10000, 1);
$end = memory_get_usage(); //10k elements array;
echo &#39;argv:&#39;, ($end - $mid)/10000 ,&#39;byte&#39; , &#39;<br>&#39;;
echo &#39;Memory:&#39;,($end - $mid)/1024 ,&#39;k&#39; , &#39;<br>&#39;;
得到:
argv:54.5792byte
argv:54.5784byte

argv:39.736byte
Memory:388.046875k
argv:39.736byte
Memory:388.046875k

大概了解10000個元素的整數數組需要佔用388k 內存,從這個結果來看似乎一個陣列元素大約佔了39個位元組左右。

以上是php中變數佔記憶體嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn