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 :

appelé une classe depuis une fonction


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    387
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 387
    Points : 109
    Points
    109
    Par défaut appelé une classe depuis une fonction
    bonjour a tous.
    Voila j'ai une class contenant une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class currencies {
        var $currencies;
    [...]
     function display_price($products_price, $products_tax, $quantity = 1,$fontsize) {
         [...]
        }
      }
    j'appelle dans mon code source:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $currencies->display_price(310,....)
    Mais je suis confronter a un problème, j'essaie d'appeler cette fonction depuis une autre fonction, ne faisant pas partit de la class, et là cela bloque.
    la class est pourtant appelé avant la fonction secondaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    [...]
      require(DIR_WS_FUNCTIONS . 'currencies.php');
      require(DIR_WS_FUNCTIONS . 'test.php');
    echo test(310);
    [...]
    ?>
    et le code de test.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    function test($products_id) {
    return  $currencies->display_price($products_id, 0,1,30);
      }?>
    Je pense que c'est un problème de syntaxe et que je ne peut pas appeler la fonction de la sorte?
    Pourriez vous me corriger?

  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
    $currencies n'existe pas dans la fonction test()

    Tu peux le globaliser ou le passer en paramètre.

  3. #3
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    Bonjour,

    regarde du coté de ce lien. Cela explique pas mal le fonctionnement de l'objet sous PHP5.


    Grosso modo, tu dois avoir une instance de ta classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $maclass = new currencies
    Apres tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $maclass->display_price(...)
    Si tu veux appeler ta fonction directement tu peux la déclarer en static.

  4. #4
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    387
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 387
    Points : 109
    Points
    109
    Par défaut c'etait si simple.
    c'etait si simple.
    J'ai globaliser $currencies et c'est bon

    @Bebel
    effectivement j'avais oublier de le mettre dans l'exemple mais j'ai bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      require(DIR_WS_CLASSES . 'currencies.php');
      $currencies = new currencies();
    Je te remercie.

  5. #5
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    En passant, globaliser est contraire aux principes du paradigme objet.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 05/07/2011, 12h51
  2. Modifier une variable d'une classe depuis une autre classe
    Par Kezado dans le forum Général Java
    Réponses: 8
    Dernier message: 23/09/2010, 15h52
  3. Eval d'une propriété d'une classe dans une classe
    Par bizet dans le forum ASP.NET
    Réponses: 4
    Dernier message: 28/10/2008, 10h43
  4. [AS2] Atteindre attribut d'une classe depuis une fonction interne a la classe
    Par Demco dans le forum ActionScript 1 & ActionScript 2
    Réponses: 6
    Dernier message: 18/04/2006, 22h03

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