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 :

Valeur retournée par défaut par une fonction


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 40
    Par défaut Valeur retournée par défaut par une fonction
    Pour mettre en application ce que je suis en train d'apprendre, j'ai créé ma première classe (historique ).
    A ce sujet, déjà deux questions :
    Dans cette classe j'ai créé une fonction verifier_utilisateur avec pour argument $var_pseudo qui doit me retourner true si $var_pseudo existe dans la base, ou false dans le cas contraire.
    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
     
            function verifier_pseudo( $var_pseudo )
    	{
                    // La connection à la base est déjà établie
                    if( !empty( $var_pseudo ) )
                    {
    		        $sql = 'SELECT pseudo FROM utilisateurs WHERE pseudo = \'' . $var_pseudo .'\'';
    		        $req = mysql_query( $sql );
                            // Autre question
    		        $data = mysql_fetch_assoc( $req );
    		        if( mysql_num_rows( $req ) > 0 )
    		        {
    			        return true;
    		        }
                    }
    	}
    Alors ma première question est : est-ce que par défaut, si la ligne return true; n'est pas atteinte, ma fonction retournera FALSE ?
    La deuxième : J'ai remarqué que si aucun enregistrement ne correspond au pseudo, j'ai des Warning: XXX: supplied argument is not a valid MySQL result resource (XXX étant la fonction fetch_assoc et num_rows.
    Dois-je ajouter un if( $req !== false ) {} ?
    Merci et bonne journée

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 40
    Par défaut
    oups pour la deuxième question je crois que j'ai dit une bêtise... dans ce cas, mysql_query ne me retournait-elle pas NULL et non pas false ?

  3. #3
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Salut,

    Première question: il faut un return dans tous les cas, c plus propre qd même.
    Moi, j'utilise tjs une variable initialisée à true ou false puis modifier en fonction.

    Deuxième question: Le pb est que mysql_num_rows peut retourner false, il faut donc tester en premier ce cas.

    Voici une ébauche de ta fonction modifié, à terminer.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function verifier_pseudo( $var_pseudo ) {
           testPseudo = false;
           if( !empty( $var_pseudo ) ){
                $sql = 'SELECT pseudo FROM utilisateurs WHERE pseudo = \'' . $var_pseudo .'\'';
                $req = mysql_query( $sql );
                $data = mysql_fetch_assoc( $req );
                $nbR = mysql_num_rows( $req );
                if( !$nbR and $nbR>0 ) testPseudo=true;
           }
           return testPseudo; 
    }

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 40
    Par défaut
    Ok pour tout, merci en effet c'est plus propre

  5. #5
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Pour être tout à fait précis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function foo() {
    }
    function foo2() {
        return;
    }
     
    echo "null ? ", foo() === null ? "oui" : "non", "<br/>";
    echo "null ? ", foo2() === null ? "oui" : "non", "<br/>";
    Dans les deux cas, la fonction renvoie null 'par défaut'.
    Mais en effet, faire des return explicites est conseillé pour la clarté du code

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 40
    Par défaut
    Citation Envoyé par Fench Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if( !$nbR and $nbR>0 ) testPseudo=true;
    Oups, Y'a une ch'tite incohérence, je dois plutot mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if( !( $nbR == false ) and $nbR>0 ) testPseudo=true;
    non ?

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

Discussions similaires

  1. [C#] Paramètre par défaut dans une fonction
    Par RobinJulie dans le forum Windows Forms
    Réponses: 5
    Dernier message: 18/01/2012, 15h07
  2. [Web Service][SOAP] Valeur par défaut d'une fonction
    Par Chiendelune dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 13/03/2010, 11h23
  3. parametre par défaut d'une fonction => et pour un objet ?
    Par fourchette dans le forum Langage
    Réponses: 3
    Dernier message: 09/02/2009, 17h51
  4. Paramètre par défaut dans une fonction
    Par Rodie dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/06/2008, 11h26
  5. [PLSQL 9i] Paramètre par défaut d'une fonction
    Par lbgl dans le forum Oracle
    Réponses: 8
    Dernier message: 20/02/2007, 17h36

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