我試圖比較內存中使用的常量和變量,但發現了一個奇怪的現象。定義了一個常量但內存沒有變化
測試代碼:
<?php
var_dump(memory_get_usage()); // int(129100)
// I don't understand: I don't do someting but why there has the changed
var_dump(memory_get_usage()); // int(129156)
var_dump(memory_get_usage()); // int(129156)
define('hello', 'WORLD');
// why here hasn't changed
var_dump(memory_get_usage()); // int(129156)
$hello = 'WORLD';
var_dump(memory_get_usage()); // int(129304)
?>
使用define的行爲與C的#define非常相似,因爲它在評估之前會替換代碼中的值。我假定它將信息存儲在已經分配給解釋器的內存塊中,而不是新的內存塊。 – Matt 2012-08-15 16:14:25