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

PHP & Base de données Discussion :

petite question surement bebete


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 petite question surement bebete
    bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public function setAuteur($auteur)
            {
                if (!is_string($auteur) || empty($auteur))
                    $this->erreurs[] = self::AUTEUR_INVALIDE;
                else
                    $this->auteur = $auteur;
            }
    j'ai ce code et je voulais comprendre pk on ne met pas plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public function setAuteur($auteur)
            {
                if (is_string($auteur) || empty($auteur))
                    $this->erreurs[] = self::AUTEUR_INVALIDE;
                else
                    $this->auteur = $auteur;
            }
    qui serait plus logique,non?

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour,

    Dans le premier cas tu vérifies si la variables est différente du type string ou vide.
    Dans le deuxième cas tu vérifies si il est du type string ou vide.


    dans ton exemple d'amélioration si , alors c'est bon et il n'y a pas d'erreur

    A toi de voir

  3. #3
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    MERCI je suis bête c'etait si simple, par contre si c est un booleen si elle 0 comme valeur ca se complique non pour le empty?

  4. #4
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    Salut,
    non 0 est different de vide ! Ta condition va fonctionner

    Guigo

  5. #5
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Bon, je vais chipoter un peu, sinon beaucoup , mais est ce que cette condition is_string() est si importante que ça, est ce que ça vaut le coup de faire un tel traitement ?
    Donc est ce qu'un simple empty() ne suffirait pas finalement ?

    Je te donne mon avis, ça me semble malgré tout superflux (même si on sera d'accord que rajouter un is_string() doit représenter tout juste un micro de seconde).
    La raison est simple, car d'un coté on refuse des valeurs comme 0, 12345, qui elles sont un peu farfelues, mais "TrucMuche" est tout aussi farfelue, et pourtant là ça passera.

    Sans compter qu'il faudrait voir quelle type de donnée sera passée en argument, et si par exemple c'est un $_GET ou POST, toutes les valeur sont des chaines, même 12345.
    Ca sous entend par là que lorsque la donnée est obtenue en GET ou POST qu'il faudra faire un traitement avant ta condition pour détecter si c'est une chaine ou pas, et typer/caster la donner si c'est un INT pour que ça génère une erreur et la gérer (avec $this->erreurs).
    En finalité, c'est faire quelque part 2 fois la même chose, non ?


    D'ailleurs, je ne sais pas si vous avez fais des essai, mais pour ma part, même coté Bdd le problème est le même, que ce soit avec PDO ou les fonctions musql_*, toutes les données sont des chaines de caractères, même venant d'un champ de type INT
    C'est donc à soit même de se charger de "typer" ces données, ce qui n'est pas si pratique que ça, surtout si on automatise la récupération des données par exemple.

    Les types de données, un long débat en faite, pas si bébête que ça.

  6. #6
    Membre éclairé Avatar de coach759
    Profil pro
    Webmaster
    Inscrit en
    Août 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Août 2009
    Messages : 79
    Par défaut
    Citation Envoyé par guigo Voir le message
    Salut,
    non 0 est different de vide ! Ta condition va fonctionner

    Guigo
    Surtout pas, si je peux me permettre,
    Avec la fonction empty, zéro retourne vrai!!!

    Ce qui suit est considéré comme étant vide : (et donc return true)
    "" (une chaîne vide)
    0 (0 en tant qu'entier)
    "0" (0 en tant que chaîne de caractères)
    NULL
    FALSE
    array() (un tableau vide)
    var $var; (une variable déclarée, mais sans valeur dans une classe)

Discussions similaires

  1. [Visuel XP] Petite question sur le theme XP...
    Par ZoumZoumMan dans le forum C++Builder
    Réponses: 12
    Dernier message: 20/01/2005, 14h41
  2. [CR8.5] petite question ..
    Par mcrocher dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 13/09/2004, 15h04
  3. Une petite question
    Par Etienne1 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/08/2004, 16h19
  4. [FOREIGN KEY] petite question bete ...
    Par dzincou dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 16h35
  5. Petite question sur les performances de Postgres ...
    Par cb44 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 13h49

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