Fonction ne pas affiché les Zéro

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Fonction ne pas affiché les Zéro

Re: Fonction ne pas affiché les Zéro

par surf4you » 16 nov. 2013, 23:02

effectivement j'ai oublié de la mettre en deuxième paramètres boulet que je suis

je testerai plus tard j'ai complement planté le serveur

User has exceeded the 'max_questions' resource

je crois que je vais resté dans la création et non la prog mdr....

bref je laisse reposer le serveur et je reviens vers toi

encore merci Franck

Re: Fonction ne pas affiché les Zéro

par franckm » 16 nov. 2013, 22:50

Si je fais ce script là:
<?php
function Fix_Location($variable){
        $variable = (int)$variable;
        if($variable > 0 ){
                return $variable ;
        }else{
                return 'Location' ;
        }
}

echo '->'.Fix_Location(10).'<br />';
echo'->'. Fix_Location(0).'<br />';
echo'->'. Fix_Location('').'<br />';
echo'->'. Fix_Location(NULL);

?>
Il me répond:
->10
->Location
->Location
->Location

C'est bon non ???

Pour ta variable loyer, tu la mets bien en deuxième paramètre de ta fonction au moins ?

NOTE: le nombre/objet/tableau... retourné par ta fonction n'a strictement rien à voir avec les type de test paramètres. Tu peux très bien rentré en paramètre un nombre et ressortir un string ou un tableau par exemple.

En outre ton code devrait plutôt être construit comme ça:
<?php
function Fix_Location($variable){
        $variable = (int)$variable;
        if($variable > 0 ){
                $VarRetournee = $variable ;
        }else{
                $VarRetournee = 'Location' ;
        }

       return $VarRetournee ; 
}

echo '->'.Fix_Location(10).'<br />';
echo'->'. Fix_Location(0);

?>

Re: Fonction ne pas affiché les Zéro

par surf4you » 16 nov. 2013, 22:44

oui désolé pas facile à expliquer pour moi

donc les derniers test effectués sont

Code : Tout sélectionner

function Fix_Location($variable){ $variable = (int)$variable; if($variable > 0 ){ return $variable ; }else{ return '10' ; } }
me retourne bien 10 si le contenu de prix est nul ou vide

donc je me suis dis, si je rajoute simplement ce code pour afficher au moins du texte à la place

comme ceci

Code : Tout sélectionner

function Fix_Location($variable){ $variable = (int)$variable; if($variable > 0 ){ return $variable ; }else{ return 'Location' ; } }
mais la ça fonctionne pas surement parce que c'est du texte et non un nombre

après j'ai remplacé return par return $loyer;
mais il ne m'affiche pas le contenu de la variable loyer
or j'ai un champs loyer dans cette meme page qui lui s'affiche correctement

je ne sais pas si vous arrivez à me comprendre

Re: Fonction ne pas affiché les Zéro

par franckm » 16 nov. 2013, 19:57

par contre ce que je ne comprend pas sur la fonction qui remplace le 0 par un Nc
Détaille tes propos en mettant en exemple le code, on est pas devin non plus...

Re: Fonction ne pas affiché les Zéro

par surf4you » 16 nov. 2013, 19:29

ok merci ça j'ai bien compris, donc j'ai testé et effectivement j'ai bien ça qui s'affiche

-> Price: 10
-> Loyer: 20
-> Loyer: 20
-> Loyer: 20

par contre ce que je ne comprend pas sur la fonction qui remplace le 0 par un Nc
fonctionne sur toutes les variables sauf sur le prix....

à la rigueur si j'arrive à afficher "location" si aucun prix n'est affiché serait déjà bien mais même là ça ne marche pas...
à ne rien comprendre pfffff

Re: Fonction ne pas affiché les Zéro

par franckm » 16 nov. 2013, 18:14

Si tu fais ça:
<?php
function Fix_Location($price,$loyer){
	$price = (int)$price;
	if($price > 0){
		return $price ;
	}else{
		return $loyer;
	}
}

echo '-> Price: '.Fix_Location(10, 20).'<br />';
echo '-> Loyer: '.Fix_Location(0, 20).'<br />';
echo '-> Loyer: '.Fix_Location('', 20).'<br />';
echo '-> Loyer: '.Fix_Location(NULL, 20).'<br />';

?>

Le premier doit t'afficher 10 et les autres 20, c'est OBLIGE.

Le l ne signifie rien sauf que je définis une nouvelle variable locale (voilà pourquoi l), je l'ai enlevé si ça te perturbe...

Le truc est je 'force' cette variable à être un entier. Donc si elle est nulle, elle prend la valeur 0. Le test if, else est lui assez explicite...

Par contre, ne mets jamais un echo en sortie de function, utilises toujours un return parce que si tu fais un echo de ta fonction qui fait elle même un echo ça va pas le faire...

Re: Fonction ne pas affiché les Zéro

par surf4you » 16 nov. 2013, 16:01

Merci franck pour ton aide mais non aucun changement

afin que je puisse comprendre pourquoi le $l devant $lPrice
pour que le script retourne 0 ???? si aucune valeurs c'est ça

merci

Re: Fonction ne pas affiché les Zéro

par franckm » 16 nov. 2013, 14:27

Essaies ça :
function Fix_Location($price,$loyer){
     $lPrice = (int)$price;
     if($lPrice > 0){
           echo $lPrice;
     }else{
         echo $loyer;
     }
}

Re: Fonction ne pas affiché les Zéro

par surf4you » 15 nov. 2013, 22:40

Merci à tous pour votre aide

bon pour les deux messages plus haut j'ai rien compris désolé j'suis une bille limite blonde donc excusez-moi

après j'ai essayé ceci mais sans succès

Code : Tout sélectionner

function Fix_Location($price,$loyer){ if(!empty($price)) echo $price; else echo $loyer; }

Re: Fonction ne pas affiché les Zéro

par franckm » 14 nov. 2013, 22:49

Pour tester des nombres(integer, float...), perso je déconseille empty qui pour moi s'applique plutôt à des objets de type tableau par exemple.

Pour tester un nombre entier par exemple, je le type toujours en entier avec (int)$price et je teste la valeur de la variable par rapport à 0:
if($price > 0){
...
}

Si votre variable est nulle ou vide, le fait de mettre (int) devant la transforme automatique en 0.

Re: Fonction ne pas affiché les Zéro

par sirakawa » 14 nov. 2013, 22:34

Déjà pour que la fonction serve à quelque chose dans tous les cas:
function WPA_Fix_Zero($variable)
{
    if (empty($variable))
    {
        return "NC" ;
    }
   else
   {
     return $variable;
   }
}

$prix = WPA_Fix_Zero(0);
$tva = WPA_Fix_Zero(17.60);
/*etc*/

Re: Fonction ne pas affiché les Zéro

par computarelier » 14 nov. 2013, 22:33

Salut,

Dans ton exemple, tu dis "Si y'a pas de prix, afficher le prix, sinon afficher le loyer". Tu es sûr de pas préférer l'inverse ? Du genre : "Si y'a un prix, tant mieux affiche le, sinon affiche le loyer " ?
if(!empty($price){
echo $price;
}
else {
echo $loyer;
}

Re: Fonction ne pas affiché les Zéro

par surf4you » 14 nov. 2013, 20:34

Re bonjour à tous...

je me permets de ré-ouvrir le sujet

en faite je souhaite à présent pouvoir afficher le contenu d'une autre variable si celle si n'a pas de valeur exemple si aucun prix afficher la valeur de loyer

je comprend le principe c'est un peut comme excel avec des Si, mais j'ai beau essayer des milliards de combinaisons, mais j'ai aucun résultat probant


voici le code merci pour votre aide

Code : Tout sélectionner

function WPA_Fix_Location($price,$loyer){ $price = '' ; if (empty($price)) echo $price ; else echo $loyer; }

Re: [RESOLU] Fonction ne pas affiché les Zéro

par moogli » 24 août 2013, 15:25

Merci

Re: Fonction ne pas affiché les Zéro

par surf4you » 24 août 2013, 15:12

Modération :
Si ta question est résolue, pense à l'indiquer pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.
Tu peux réaliser cette opération toi-même en cliquant sur le bouton vert "Mettre le sujet en tant que Résolu" situé en haut de la page à côté du titre du sujet.

Ok merci c'est fait...