Maison >développement back-end >Problème PHP >Les variables occupent-elles de la mémoire en php ?
Une façon de stocker des données en php est le montant que je peux modifier. Cette méthode consiste à ouvrir un espace dans la mémoire qui peut stocker des données <.>, donnez un nom à cet espace, et l'espace à ce moment peut être appelé une variable. Cette valeur peut changer pendant le fonctionnement
Le nom de l'espace actuel est le nom de la variable, et les données (huit types de données) de l'espace actuel sont appelées la valeur de la variable
Exemple : (Apprentissage recommandé : Tutoriel vidéo PHP)
La version de PHP est 7.2<?php echo memory_get_usage() , '<br>'; $start = memory_get_usage(); $a = Array(); for ($i=0; $i<1000; $i++) { $a[$i] = $i + $i; } $mid = memory_get_usage(); echo memory_get_usage() , '<br>'; for ($i=1000; $i<2000; $i++) { $a[$i] = $i + $i; } $end = memory_get_usage(); echo memory_get_usage() , '<br>'; echo 'argv:', ($mid - $start)/1000 ,'bytes' , '<br>'; echo 'argv:',($end - $mid)/1000 ,'bytes' , '<br>'; echo 'Memory:', ($mid - $start)/1024 ,'k' , '<br>'; echo 'Memory:',($end - $mid)/1024 ,'k' , '<br>'; 输出是: 389336 418056 442632 argv:28.72bytes argv:24.576bytes Memory:28.046875k Memory:24kRetour au allocation actuelle La quantité de mémoire accordée à votre script PHP, en octets. Il est généralement entendu qu'un tableau entier de 1000 éléments occupe 28 Ko de mémoire, et chaque élément occupe en moyenne 28 octets. Les résultats renvoyés par memory_get_usage() ne sont pas tous occupés par le tableau, mais aussi Pour inclure certaines structures allouées par PHP lui-même, le tableau généré par la fonction intégrée peut être plus proche de l'espace réel :
<?php $start = memory_get_usage(); $a = array_fill(0, 10000, 1); $mid = memory_get_usage(); //10k elements array; echo 'argv:', ($mid - $start )/10000,'byte' , '<br>'; echo 'Memory:', ($mid - $start)/1024 ,'k' , '<br>'; $b = array_fill(0, 10000, 1); $end = memory_get_usage(); //10k elements array; echo 'argv:', ($end - $mid)/10000 ,'byte' , '<br>'; echo 'Memory:',($end - $mid)/1024 ,'k' , '<br>'; 得到: argv:54.5792byte argv:54.5784byte argv:39.736byte Memory:388.046875k argv:39.736byte Memory:388.046875kOn comprend grosso modo qu'un un tableau entier de 10 000 éléments occupe 388 Ko de mémoire. D'après ce résultat, il semble qu'un élément du tableau occupe environ 39 octets.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!