IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Afficher 0 et non rien [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut Afficher 0 et non rien
    Bonjour,
    j'utilise la fonction number_format pour formater un nombre.
    mais quand je n'ai pas de valeurs à afficher rien ne s'affiche (logique).
    existe t'il une fonction php qui permet de mettre un 0 a la place de rien ?

    Merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (empty($x)) {
       echo '0';
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour Sabotage,
    En effet c'est une solution, mais je cherche qqc d'autre plus simple a intégrer a mon code.
    Voici comment je récupérè la valeur et comment je l'affiche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    number_format($response->stats->opened_rate,2, ',', ' ');
    La solution qui me vient en tête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (is_numeric($response->stats->opened_rate) ? number_format($response->stats->opened_rate,2, ',', ' ') : '0' );

    J'aurai tout de même souhaité savoir si php avait une fonction toute faite.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    number_format((int)$response->stats->opened_rate,2, ',', ' ')
    Le plus propre serait quand même que ta variable soit définie à 0 à sa sortie de traitement, même quand il n'y a rien.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo number_format((float)$response->stats->opened_rate, 2, ',', '');
    EDIT: Grilled - je devrais quand même lire avant de poster

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 224
    Points
    20 224
    Par défaut
    Fait un getter pour opened_rate plutôt qu'une variable publique et tu gère l'absence de valeur dans le getter.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public function get_opened_rate()
    {
        if(empty($this->opened_rate))
            return 0;
        return $this->opened_rate;
    }
    ou en abrégé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public function get_opened_rate()
    {
        return (float)$this->opened_rate;
    }
    C'est à mon sens pas au moment de l'utilisation que la vérification doit se faire mais à la récupération de la donnée.

    C'est typiquement le genre de problème induit par un typage faible qu'on peut compenser avec un plus de rigueur dans le codage
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Ouaip, mais j'ai laissé mon message car sabotage fait une conversion en (int) d'un numérique qui va être formaté en décimal...

    Vu que j'ouvre une dizaine de discussions dans des onglets différents, quand j'arrive à poster une réponse entre le début de la lecture et le moment où je me mêle d'un fil, il se peut qu'une réponse ait déjà été donnée. Parfois, je me rends compte à la prévisualisation de la réponse mais parfois je saute cette étape et zou je me fais griller

  8. #8
    Invité
    Invité(e)
    Par défaut
    Pour le coup je suis tout à fait d'accord avec vous, mais je ne suis pas maitre de l'info de sortie.
    L'objet me viens d'un WS et ils n'ont pas eux la bonne idée de mettre un 0 si pas de valeur, donc il faut que je gère cela autrement.

    Ceci dit, il semble que number_format affiche 0 si pas de valeur.
    Donc j'ai mis number_format de partout et c'est nikel.

  9. #9
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Euh, si j'étais toi je ferais la conversion explicitement car si tu tombes pour n'importe quelle raison sur truc de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo number_format('abc', 2, ',', '');
    tu vas ramasser ceci à l'exécution :
    Warning: number_format() expects parameter 1 to be double, string given in K:\projets\dvp\sarp\dvp.php on line 3
    Alors que (float)'abc' donnera toujours 0

  10. #10
    Invité
    Invité(e)
    Par défaut
    Ok merci de l'info.
    Question il est préférable d'utiliser (float) ou (int) comme proposé plus haut ?

  11. #11
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 224
    Points
    20 224
    Par défaut
    Ba ca dépend de la valeur attendu , mais à priori vu le formatage que tu fais y'a des chance que ce soit un float.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    (float).

    Edit : Encore grilled : j'abandonne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher du texte non statique
    Par cococococococo dans le forum Interfaces Graphiques
    Réponses: 8
    Dernier message: 21/06/2007, 10h47
  2. Réponses: 3
    Dernier message: 11/05/2007, 14h13
  3. [VBA-E]afficher les cellules et rien que les cellules.
    Par potili2 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/03/2007, 16h17
  4. [SQL] Afficher oui ou non quand on confirme une personne.
    Par snakejl dans le forum PHP & Base de données
    Réponses: 50
    Dernier message: 29/06/2006, 12h24
  5. Jointure;comment afficher les enregs "non doubles"
    Par Wismerill dans le forum Langage SQL
    Réponses: 5
    Dernier message: 18/04/2005, 09h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo