Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/04/2011, 10h50   #1
Nouveau Membre du Club
 
Inscription : septembre 2004
Messages : 236
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 236
Points : 35
Points : 35
Envoyer un message via MSN à gotcha5832
Par défaut appelé une classe depuis une fonction

bonjour a tous.
Voila j'ai une class contenant une fonction
Code :
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 :
 $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 :
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 :
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?
gotcha5832 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 11h00   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
$currencies n'existe pas dans la fonction test()

Tu peux le globaliser ou le passer en paramètre.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 11h03   #3
Membre Expert
 
Avatar de Bebel
 
Homme David B.
Développeur informatique
Inscription : avril 2003
Messages : 742
Détails du profil
Informations personnelles :
Nom : Homme David B.
Âge : 29
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 : 742
Points : 1 085
Points : 1 085
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 :
$maclass = new currencies
Apres tu peux faire
Code :
$maclass->display_price(...)
Si tu veux appeler ta fonction directement tu peux la déclarer en static.
__________________
Tout énigme a une solution ! Tout est question de discipline !
Bebel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 11h11   #4
Nouveau Membre du Club
 
Inscription : septembre 2004
Messages : 236
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 236
Points : 35
Points : 35
Envoyer un message via MSN à gotcha5832
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 :
1
2
  require(DIR_WS_CLASSES . 'currencies.php');
  $currencies = new currencies();
Je te remercie.
gotcha5832 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 12h07   #5
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
En passant, globaliser est contraire aux principes du paradigme objet.
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h07.


 
 
 
 
Partenaires

Hébergement Web