[Fonctions] Multi-return

Mammouth du PHP | 1668 Messages

16 juin 2008, 19:08

Bonjour à toutes et tous,
J'ai une fonction et j'aimerais qu'elle retourne plusieurs valeurs :
[True] et un (int) ou [False]

J'aimerais m'en servir comme ça :
<?php
function retour($argument)[
    if($argument=='j') return true; // Et il faudrait qu'elle retourne une autre valeur...
    else return false;
}
if($variable=retour($lettre)) echo "oui c'est la ".$variable."ème de l'alphabet"; // Ou $variable est la seconde valeur retournée
else die('un autre jour');
?>
Comment faire sâchant que je ne peux faire qu'un return, car après ma fonction est stoppée...

Si vous avez des idées je vous szerait très reconnaissant de m'en faire part 8-)

Par avance merci
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Administrateur PHPfrance
Administrateur PHPfrance | 977 Messages

16 juin 2008, 19:28

Fait en sorte que ta fonction retourne deux valeurs ! false ou quelques choses !

Code : Tout sélectionner

If($avaleuer!="toto"){ return false; }else{ return tavaleur; }
Comme si si ta fonction ne retourne pas false c'est soit true, soit un int et t'a plus qu'a tester ce qui est renvoyé.
pro : http://www.ohweb.fr -> studio de développement en PHP, expertise en e-commerce, certifié PrestaShop
perso : http://www.olecorre.com -> un dico de termes informatiques

J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé : je ne sais plus comment utiliser mon téléphone. [Bjarne Stroustrup]

Mammouth du PHP | 1668 Messages

16 juin 2008, 19:53

Bien chef, mais ma valeur pourrait être égale à 0 :x
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Administrateur PHPfrance
Administrateur PHPfrance | 977 Messages

16 juin 2008, 20:00

Pour faire tes tests de valeur tu utilise === , les trois égales qui tiens compte du typage
donc 0 sera différent de false, comme 1 sera différent de true
pro : http://www.ohweb.fr -> studio de développement en PHP, expertise en e-commerce, certifié PrestaShop
perso : http://www.olecorre.com -> un dico de termes informatiques

J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé : je ne sais plus comment utiliser mon téléphone. [Bjarne Stroustrup]

Mammouth du PHP | 1668 Messages

16 juin 2008, 20:08

Merci beaucoup
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

ViPHP
AB
ViPHP | 5818 Messages

16 juin 2008, 20:26

Une fonction ne retourne qu'une valeur à la fois ou un tableau à la fois. Donc au pire pour renvoyer plusieurs valeurs simultanément, il te reste la solution de renvoyer un tableau.
Je dis "au pire" car au mieux il serait peut-être plus avisé de revoir ton algo comme te l'a suggérer Cobaye.

EDIT Hou là j'ai tardé un peu trop longtemps avant de cliquer sur "envoyer" :?

Mammouth du PHP | 1668 Messages

16 juin 2008, 20:29

C'est ce que je vient de faire et je m'aperçois que c'est mieu qu'autre chose...

[HS]Plus je fait des trucs dûr, plus je commence à oublier la base :( [/HS]
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol