Probleme avec la fonction php is_int

Probleme avec la fonction php is_int - PHP - Programmation

Marsh Posté le 06-07-2012 à 10:23:50    

Bonjour,  
je rencontre des difficultés dans l'utilisation de la fonction is_int en php.  
Voila ma fonction :  
function etoile($val){
 $val = round($val*2)/2;
 if(is_int($val)){
  $val = "n".$val."on5";
 }
 else{
  $val = "n".floor($val)."midon5";
   
 }
 return $val;
}
 
je lui transmets des valeurs tel que 4.03, 4, 1.75 ...  
je me suis rendu compte que je le test is_int($val) n'était jamais bon alors que si on déroule une dès le début, avec en entrée 4.03 :  
4 = round(4.03*2)/2;  
if(is_int(4)){  
n4on5 = "n".4."on5";  
}  
else{  
$val = "n".floor($val)."midon5";  
}  
return n4on5;  
alors que j'ai un return n4modon5  
je passe systématiquement dans le else....
avez vous une explication ?


---------------
la vie à le goût qu'on lui donne !! Vive le photo numérique et le tirage photo
Reply

Marsh Posté le 06-07-2012 à 10:23:50   

Reply

Marsh Posté le 06-07-2012 à 12:54:37    

round() renvoi un flottant en PHP. Or la fonction is_int() renverra false tant que tu ne lui donne pas une variable de type integer.

 

Tu peux simplement convertir manuellement le retour de la fonction round() :

Code :
  1. $val = ((int) round($val*2))/2;


Je pense que c'est la meilleure solution.

 

Sinon, tu peux remplacer le is_int() :
— Utiliser un filtre (sachant que tu peux y joindre des options facultatives) :

Code :
  1. filter_var($var_a_tester, FILTER_VALIDATE_INT);


— Utiliser une expression régulière :

Code :
  1. preg_match('/[0-9]+/', $var_a_tester);


Message édité par Archaygo le 06-07-2012 à 13:14:27
Reply

Marsh Posté le 07-07-2012 à 11:02:20    

exacte ! merci pour cet astuce !!!
 
ca fonctionne !!
 
Jérémie

Reply

Sujets relatifs:

Leave a Replay

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