EXEMPLE D'UTILISATION DES VARIABLES STATIQUES : FONCTION & CONDITION ...

Messages postés
10844
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
- - Dernière réponse : LocalStone
Messages postés
515
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
1 mars 2009
- 7 juil. 2005 à 18:45
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/32566-exemple-d-utilisation-des-variables-statiques-fonction-condition

Afficher la suite 
malalam
Messages postés
10844
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17 -
Hello,

hmm...
Bon, outre le fait que ta fonction risque d'etre gourmande vu qu'on recompte le tableau a chaque iteration de ta boucle, tu seras peut-etre heureux qu'il existe deja une structure en php permettant de faire ca. Comme j'ai la flemme de reecrire un exemple banal qui existe deja sur php.net, je vais plutot le copier-coller :

<?php
$fruit array('a'> 'apple', 'b' => 'banana', 'c' => 'cranberry');

reset($fruit); // a noter que cette structure deplace le pointeur interne du tableau, seule difference avec ta fonction. Il faut donc utiliser reset () avant si on a deja deplace ce pointeur, et apres si on ne veut pas que le pointeur soit a la fin du tableau.
while (list($key, $val) = each($fruit)) {
echo "$key => $val\n";
}
?>

http://de2.php.net/manual/en/function.each.php
malalam
Messages postés
10844
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17 -
Et puis tant que j'y suis, une autre facon :

<?php
$tab = array (1,2,3,4,5,6);
while (false !($valeur current ($tab))) {
echo $valeur, '
';
next ($tab);
}
?>
LocalStone
Messages postés
515
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
1 mars 2009
-
Salut à toi, Malalam ...
Je sais pas si tu as lu l'ensemble du texte, mais la fonction que j'ai proposé est totalement inutile et mal adaptée à son but. En plus des solutions que tu proposes, y a aussi "foreach" ...
Sauf que voilà, bah mon but n'est absolument pas de lister les éléments d'un tableau, mais de tenter d'expliquer comment créer une fonction qui puisse servir de condition dans une boucle. Mais je ne vais pas tout réécrire ou réexpliquer, puisqu'il suffit de lire en entier ce que j'ai écrit précédement.
Voilà !
L.S.
malalam
Messages postés
10844
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17 -
Ok mais si elle est inutile (j'avais bien lu), pourquoi la montrer ici ? Quel interet ? Puisqu'on peut se servir du parcours d'un tableau dans une condition, c'est meme tres frequent en programmation...on le fait quasiment tous a un moment ou a un autre?
Qui n'a pas fait
$cpt = count ($tab)
for ($i = 0; $i < $cpt; $i++)
...
ou
while ($i < $cpt)
..
$i ++

?

En fait ma question serait plutot : pourquoi une fonction pour ca, alors que tu fais la meme chose, sans fonction mais surtout avec aussi peu de lignes de codes que ton appel de fonction ? Si la fonction remplacait un code un peu plus long, ok...mais ce n'est pas le cas ? Tu as juste reecrit les structures de parcours de tableaux comme list...
Je ne comprends pas lol.
LocalStone
Messages postés
515
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
1 mars 2009
-
L'interêt, c'est d'abord de montrer que de réaliser de telles fonctions est possible. D'une. Ok, j'ai mis un exemple bateau, n'empêche que je pense qu'il permet de bien comprendre la chose. Mais imagine que tu veuilles par exemple créer une jolie classe ergoomique et que tu veuilles créer une méthode qui interroge plusieurs base de données et qui tri les données à la volée ... Bah voilà, c'est possible.
De deux, l'interêt c'est d'expliquer une utilisation particulière des variables statiques. Je dis "une" parce qu'il y en a d'autre, comme par exemple ici : http://www.phpcs.com/codes/UTILISATION-INTELLIGENTE-DES-VARIABLES-GLOBALES-/26887.aspx (Y a marqué globale, mais en fait, ce sont les variables statiques qui sont encore plus adaptées pour cette exemple).
Voilà. Peut-être que j'ai fait 2 conneries - et ça je l'admet - ... J'aurais peut-être du préciser qu'il fallait LIRE et ne pas mettre cette source dans la catégorie "astuce".
++ !
L.S.