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 :

variable booléen dans GET


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut variable booléen dans GET
    bonjour,

    voila j ai fais des class php5 qui fonctionne maintenant tres bien mais une des valeurs est un booléén est je ne comprend pourquoi il n'affiche rien via son get:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public function getActiver()
    	{
    		return (bool)$this->activer;
     
    	}
    alors que quand je met:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public function getActiver()
    	{
    		return (int)$this->activer;
     
    	}
    des 0 sont attribués a mes variables meme si'il y'avait un 1 dans la base sql.

    Etrange, y'a 'il un problème avec la valeur bool dans une class php5? faut-il la definir autrement QUE les autres?

    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
    Par défaut
    As-tu testé si tu avais le meme comportement en dehors de ta classe ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 41
    Par défaut
    En bdd, et en particulier sous mysql, les booléens sont en fait des entiers (TinyInt).

    De fait je te conseille de ne pas caster la variable dans ton accesseur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function getVariable(){
    return $this->variable;
    }

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    La conversion (implicite par echo ou autre) du booléen FALSE en chaîne est la chaîne vide.

    La conversion de l'entier 0 en chaîne est '0'.

    La valeur booléenne TRUE est convertie en la chaîne "1". La valeur booléenne FALSE est convertie en "" (une chaîne vide).
    Un entier ou un nombre décimal est converti en une chaîne de caractères représentant le nombre de façon textuel [...].

  5. #5
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    donc si rien n 'apparait c est car c est un booléen de valeur 0 donc renvoit un valeur vide. mais la la valeur etait de 1 donc il faut que je change la valeur bool en int :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public function getActiver()
    	{
    		return $this->activer;
     
    	}

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Oui c'est à peu près ça.

    Si j'ai bien compris : pour le passage de la valeur 1 en base à 0 ou faux en php, il faudrait la partie du code PHP qui réalise l'opération bdd => php en ayant auparavant vérifier le contenu de la base (sait-on jamais). L'accesseur ni même l'attribut en lui-même ne peuvent en être à l'origine (mauvaise affectation ou absence d'affectation à l'attribut par exemple).

  7. #7
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    donc j'ai regler ca mais maintenant j 'ai un pb avec le flaot qui ne s'affiche pas sauf si je le met en int, mais la decimal alors n'apparait plus.

    Est-ce encore un erreur du meme genre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?php
    public function setPrix($prix)
    	{
    		if (!is_float($prix) || empty($prix))
    		$this->erreurs[] = self::PRIX_INVALIDE;
    		else
    		$this->prix = $prix;
     
    	}
     
    public function getPrix() {
    		return $this->prix;
     
     
    	}
    ?>
    merci.

  8. #8
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut prix float qui ne s'affiche pas via class produit
    donc j'ai regler ca mais maintenant j 'ai un pb avec le flaot qui ne s'affiche pas sauf si je le met en int, mais la decimal alors n'apparait plus.

    Est-ce encore un erreur du meme genre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?php
    public function setPrix($prix)
    	{
    		if (!is_float($prix) || empty($prix))
    		$this->erreurs[] = self::PRIX_INVALIDE;
    		else
    		$this->prix = $prix;
     
    	}
     
    public function getPrix() {
    		return $this->prix;
     
     
    	}
    ?>
    merci.

Discussions similaires

  1. recuperer des variables passées en get dans fichier js ?
    Par Alexdezark dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 21/11/2009, 15h45
  2. [PHP-JS] GET et variable $i dans un While
    Par dembroski dans le forum Langage
    Réponses: 3
    Dernier message: 29/08/2007, 03h45
  3. [MySQL] Analyse des variables dans GET
    Par isabe dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/06/2007, 18h10
  4. transmettre une variable $mavariable dans une GET
    Par pakkun dans le forum Langage
    Réponses: 6
    Dernier message: 16/06/2007, 02h29
  5. Variable "globale" (dans plusieurs templa
    Par mattmat dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 17/06/2003, 20h22

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