ptite question au sujet de return

ptite question au sujet de return - PHP - Programmation

Marsh Posté le 09-08-2003 à 17:14:33    

regardez ces quelques lignes:
function impair($var) {
    return ($var % 2 == 1);
}
 
Jveux juste savoir, quelle est la valeur retournée par return ?
merci

Reply

Marsh Posté le 09-08-2003 à 17:14:33   

Reply

Marsh Posté le 09-08-2003 à 17:36:26    

Hello,  
en toute logique, la fonction return devrait renvoyer $var = 1,
encore que....
Je te conseille de faire autrement pour tester si un nombre est paire ou impaire. Le fait d'utiliser le modulo est une très bonne idée ( la meilleure a mon gout ) mais ta syntaxe est boff et riské.
a ta place je ferai ça :  
 
<?php
$valeur;
//valeur a tester
impair ($valeur)
{
if ($valeur%2==1)
{
$resultat = impair;
}
else
{ resultat =  pair ; }
return ($resultat);
}
?>
Voila j'espère ça t'ira  :)

Reply

Marsh Posté le 09-08-2003 à 17:58:27    

Kmikaz a écrit :

regardez ces quelques lignes:
function impair($var) {
    return ($var % 2 == 1);
}
 
Jveux juste savoir, quelle est la valeur retournée par return ?
merci

Ca retourne un truc que tu peux tester sans problème :)  
(soit un booléen, soit un entier valant 0 ou 1)

Reply

Marsh Posté le 09-08-2003 à 20:01:06    

comme mrBebert  :)


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 10-08-2003 à 23:23:16    

Kmikaz a écrit :

regardez ces quelques lignes:
function impair($var) {
    return ($var % 2 == 1);
}
 
Jveux juste savoir, quelle est la valeur retournée par return ?
merci


ca depend  de la priorité des operateur ...
mets quelques parentheses et ca ira mieux

Code :
  1. return (($var % 2) == 1);

te rend "true" si var est impair et "false" si pair.


---------------
Je dors pas, j'm'économise ...
Reply

Marsh Posté le 10-08-2003 à 23:46:08    

Ti_Thom a écrit :


ca depend  de la priorité des operateur ...


 
Que voudrais-tu avoir comme autre façon d'interpréter ce code ?
Ça, par exemple ?!

Code :
  1. function impair($var)
  2. {
  3.     return ( $var % (2 == 1) );
  4. }


 
 
Ici, c'est un truc évident qui se passe:
Calcul d'un modulo, comparaison entre le résultat obtenu et le chiffre 1, c'est-à-dire que si le résultat du calcul est égal à 1, ça retourne « true ».
 
C'est comme si on avait fait:

Code :
  1. function impair($var)
  2. {
  3.     if ($var % 2 == 1) {
  4.        return true;
  5.     } else {
  6.        return false;
  7.     }
  8. }


 
Bref, c'était le code de départ qui était le plus propre...


Message édité par eL_Shaman___ le 10-08-2003 à 23:48:21
Reply

Marsh Posté le 11-08-2003 à 00:20:37    

BOssGTS a écrit :

Hello,  
en toute logique, la fonction return devrait renvoyer $var = 1,


 
 :heink:


---------------
yvele n'est plus.
Reply

Marsh Posté le 11-08-2003 à 18:50:27    

El_ShAmAn___ a écrit :


 
Que voudrais-tu avoir comme autre façon d'interpréter ce code ?
Ça, par exemple ?!

Code :
  1. function impair($var)
  2. {
  3.     return ( $var % (2 == 1) );
  4. }


 
...


bah oui, n'oublies pas que c'est une machine qui execute le code ;) et == est un operateur tout comme % (pas de la même catégorie certes)
Selon la maniere dont sont définis les priorités, le parser peut l'interpreter d'une maniere ou de l'autre, c'est pour cela que je conseillais de mettre des parenthèses.


---------------
Je dors pas, j'm'économise ...
Reply

Marsh Posté le 11-08-2003 à 20:43:53    

modulo (%) est prioritaire sur ==
 
edit: ...donc la fonction constitue bien un test d'imparité de $var.


Message édité par ACut le 11-08-2003 à 20:45:50
Reply

Marsh Posté le 12-08-2003 à 01:04:03    

ACut a écrit :

modulo (%) est prioritaire sur ==
 
edit: ...donc la fonction constitue bien un test d'imparité de $var.


oki doki
Je m'en doutais un peu, mais je suis déjà tombé sur des langages avec des comportements bizarres alors je me méfies et je met des parentheses pour etre sur...


---------------
Je dors pas, j'm'économise ...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed