Exemple d'utilisation des variables statiques : fonction & condition ...

Contenu du snippet

Alors voilà ... Je me demandais bêtement en regardant de la merde à la télé comment on pouvait coder une fonction qui fonctionne comme la célèbre fonction "mysql_fetch_array()" ; c'est à dire que l'on utilise en s'en servant comme condition dans une boucle. Et bien la réponse réside dans les variables dites "statiques" (ou "static" pour les anglophiles).
Du coup, pour essayer, j'ai coder une fonction toute inutile qui permet de faire défiler les éléments d'un tableau. Et - Ô Miracle - ça fonctionne. Et donc, je fais partager au réseau Codes-Sources !

Source / Exemple :


<?php
/* ------------------------------ */
   // Fonction qui va faire défiler les éléments d'un tableau.
   function FooBar($array)
   {
      // La variable statique qui va permettre de voir ou l'on se trouve dans le tableau. On lui donne la valeur "0" en supposant que le tableau commence à l'index 0.
      static $i = 0;
     // Si l'index appartient encore à l'ensemble des clefs du tableau ...
      if($i < count($array))
      {
         // Alors on retourne la valeur correspondant à la clef ...
         $value = $array[$i];
      }
      else
      {
         // Sinon, on retourne "false" qui aura pour effet de stopper la boucle.
         $value = false;
      }
      // On incrémente la variable statique.
      $i++;
      return $value;
   }
   // Exemple ;) ...
   $tablo = array(7, 4, 5, 8, 9, 1, 2, 3);
   while($value = FooBar($tablo))
   {
      echo $value.'<br />';
   }
/* ------------------------------ */
?>

Conclusion :


Voilà voilà ... Un code sans prétention, mais qui va me rendre service pour essayer de coder une pseudo-base de donnée XML-SQL. Secret ... Sinon, pour ceux qui n'ont pas trop compris, je vais pas me faire chier et citer Julp de php.developpez.com : "Une variable statique est uniquement utilisée dans le corps des fonctions. Elle n'est pas accessible à l'extérieur de la fonction où elle est déclarée. Static nous vient du C et signifie que la valeur de la variable conserve après les appels de la fonction sa valeur puisque l?emplacement mémoire alloué à cette variable est constant. Ce qui n?est pas le cas en temps normal avec les variables puisqu?elles sont détruites à la fin de l?exécution de la fonction (soit lorsque la fin du bloc de la fonction a été atteint, soit lorsque return est rencontré).".
Sur ce, ++ !
LocalStone.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.