Il n'y a pas de moyen direct d'obtenir l'utilisation de la mémoire d'une seule variable, mais comme Gordon suggéré, vous pouvez utiliser memory_get_usage
. Qui sera de retour le total de la quantité de mémoire allouée, de sorte que vous pouvez utiliser une solution de contournement et de mesurer l'utilisation avant et après pour obtenir l'utilisation d'une seule variable. C'est très orthodoxe, mais il devrait fonctionner.
$start_memory = memory_get_usage();
$foo = "Some variable";
echo memory_get_usage() - $start_memory;
Notez que ce n'est pas une méthode fiable, vous ne pouvez pas être sûr que rien d'autre ne touche la mémoire, tout en affectant la variable, donc cela ne devrait être utilisé comme une approximation.
Vous pouvez réellement faire une fonction par la création d'une copie de la variable à l'intérieur de la fonction et de la mesure de la quantité de mémoire utilisée. N'ai pas testé, mais en principe, je ne vois rien de mal à cela:
function sizeofvar($var) {
$start_memory = memory_get_usage();
$tmp = unserialize(serialize($var));
return memory_get_usage() - $start_memory;
}