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 :

Creer une fonction qui retourne une variable dans le script [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut Creer une fonction qui retourne une variable dans le script
    Bonjour,

    Je m'explique par un exemple :
    Qaund on utilise ereg(), les 3 premiers parametres representent dans l'orde, le pattern, la chaine a verifier, et le tableau de retour des elements correspondants au pattern. Cette fonction arrive a creer une variable $regs dans le script sans faire un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // ON UTILISE 
    $verification = ereg($pattern, 4chaine, $regs)
    // ET NON
    $regs = ereg($pattern, 4chaine, $regs)
    En effet, la valeur de retour est deja utilisee pour la valeur booleenne de verification.

    Ma question est donc la suivante, comment, a l'image de cette fonction, et de son utilisation du tableau $regs, declarer et attribuer une valeur a une variable dans mon script a travers une fonction quelconque ? La variable devra etre locale, c'est a dire visible uniquement par l'objet ou la fonction qui l'appelle.

    D'avance merci pour vos suggestions.
    Spécialité : Développement WEB
    Indispensables : Doc PHP ~ Doc MySQL ~ w3schools ~ validateurs W3C ~ Google Adwords ~ PHP-Tester


  2. #2
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 2
    Points : 4
    Points
    4
    Par défaut
    Bonjour,


    Pour ma part je préfère utiliser preg_match :
    preg_match($expr,$rech,$matches);

    Voir la doc php pour plus d'infos.

    Mais peut etre que je ne répond pas à ta question.

  3. #3
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut


    Non, tu ne reponds pas a ma question ...

    Mais je peux transposer : Comment créer un retour a l'image de $matches dans une fonction perso ?

    Pour être plus précis, j'ai une classe BDD que j'utilise comme suis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $BDD = new BDD;
    $BDD->requete("SELECT * FROM developpez_topics");
    $BDD->extraire("id_topic");
    ...
    j'aimerai l'utiliser comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $BDD = new BDD;
    $BDD->requete("SELECT * FROM developpez_topics",$resultats); // return true ou false
    $resultats->extraire("id_topic");
    C'est peut-être plus clair comme ca

    PS : Il existe une réelle différence de perfs entre ereg_replace et preg_replace ?
    Spécialité : Développement WEB
    Indispensables : Doc PHP ~ Doc MySQL ~ w3schools ~ validateurs W3C ~ Google Adwords ~ PHP-Tester


  4. #4
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut
    Je regarde du cote des références de variables mais dans mon sens, je ne trouve rien de satisfaisant ... Une idee ?
    Spécialité : Développement WEB
    Indispensables : Doc PHP ~ Doc MySQL ~ w3schools ~ validateurs W3C ~ Google Adwords ~ PHP-Tester


  5. #5
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut
    EUREKA !

    J'ai trouve, et je suis pas peu fier :-)

    Il faut utiliser les references.

    on a donc ca a l'appel de la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $BDD = new BDD;
    $BDD->requete("SELECT * FROM developpez_topics",$resultats); // return true ou false
    $resultats->extraire("id_topic");
    Et du cote de la classe, on a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public function requete($requete,&$resultats) {
      // MA REQUETE etc ...
      $resultats = $this;
    }
    Spécialité : Développement WEB
    Indispensables : Doc PHP ~ Doc MySQL ~ w3schools ~ validateurs W3C ~ Google Adwords ~ PHP-Tester


  6. #6
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut
    Arf, bon, l'euphorie est retombée, c'est toujours pas ca ...

    En fait avec ma méthode, je cree une reference vers l'espace memoire de ma $BDD, donc si elle change, mon $résultats change, et ca ne sert a rien ...

    Je repars en mode recherche
    Spécialité : Développement WEB
    Indispensables : Doc PHP ~ Doc MySQL ~ w3schools ~ validateurs W3C ~ Google Adwords ~ PHP-Tester


  7. #7
    Membre confirmé Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Points : 514
    Points
    514
    Par défaut
    Ca c'est bon pour ce que tu veux (passage par référence) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public function requete($requete, &$resultats)
    Ensuite:
    Effectivement, vu que $this est mutable, tu rencontres le problème que tu as soulevé.
    En fait, il faudrait, à mon avis, que $resultats soit une référence non pas vers l'objet de la classe lui même, mais vers une sorte de "results set" qui serait dès lors figé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public function requete($requete,&$resultats) {
      // MA REQUETE etc ...
     
      $resultats = new ResultSet(...); // reste à définir ResultSet!
    }
    Avec PDO, ResultSet pourrait être PDOStatement

  8. #8
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut
    C'est une bonne idee, j'essaie de modifier ma classe en consequence.
    Spécialité : Développement WEB
    Indispensables : Doc PHP ~ Doc MySQL ~ w3schools ~ validateurs W3C ~ Google Adwords ~ PHP-Tester


  9. #9
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut
    Genial, en creant une classe specifique au stockage du resultat, ca fonctionne.

    Merci beaucoup, elle a une "classe" internationale ^^
    Spécialité : Développement WEB
    Indispensables : Doc PHP ~ Doc MySQL ~ w3schools ~ validateurs W3C ~ Google Adwords ~ PHP-Tester


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

Discussions similaires

  1. Réponses: 10
    Dernier message: 05/02/2015, 14h47
  2. creer une fonction qui retourne un tableau
    Par altaro dans le forum SQL Procédural
    Réponses: 0
    Dernier message: 02/01/2010, 01h01
  3. probléme dans une fonction qui retourne un data reader
    Par saraenim dans le forum Windows Forms
    Réponses: 32
    Dernier message: 28/04/2008, 21h53
  4. Réponses: 7
    Dernier message: 03/12/2004, 12h40
  5. Réponses: 14
    Dernier message: 09/04/2004, 13h44

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