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 :

[POO] Accès à une variable impossible!


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Par défaut [POO] Accès à une variable impossible!
    J'ai un problème assez ennuyeux avec ma POO... en fait je n'arrive pas à obtenir le contenu d'une variable, même en passant par un getter.
    En fait ce que je souhaite faire c'est ma classe personnelle pour FPDF (en fait partir de la base de phpToPDF).

    Voici mon code (simplifié qui ne fonctionne pas non plus ^^):
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    class InvoicePDF extends phpToPDF {
     
    	private $invoiceNumber;
     
    	public function setInvoiceNumber($invoiceNumber) {
    		$this->invoiceNumber = utf8_decode($invoiceNumber);
    	}
    	public function getInvoiceNumber() {
    		return $this->invoiceNumber;
    	}
     
    	public function Header() {
    		//Logo Silversquare
    	    //$this->Image('../img/logo_silversquare.jpg',94,22,30,35);
    	    //Invoice Number
    	    echo 'InfoHeader ',$this->getInvoiceNumber();
    	    /*$this->SetFont('Arial','B',12);
    	    $this->Text(155,54, $this->getInvoiceNumber());//$this->invoiceLabel['invoiceNumber'].$this->invoiceNumber);
    	    $this->Line(153,56,197,56);
    	   	// WaterMark
    	    if ($this->invoiceWaterMarkText != null)
    	    	$this->waterMark($this->invoiceWaterMarkText,array(10,52));
    	    //Saut de ligne
    	    $this->Ln(65);*/
    	}
     
    	public function test() {
    		echo 'InfoTEST : ',$this->getInvoiceNumber();
    	}
    }
    ?>
    La fonction Header est appelée par l'ancêtre (je redéfini donc la fonction).
    Le résultat est simple: il m'affiche "InfoHeader".

    Je ne parviens pas à recevoir la valeur que j'ai passé au setter en paramètre.
    Par contre, si j'appelle ma fonction test() alors le contenu est bien affiché...

  2. #2
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Pourrais-tu nous donner le code pour l'instantiation et les appels de méthodes?

  3. #3
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Et prends l'habitude de concaténer avec un point et non avec une virgule.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    Et prends l'habitude de concaténer avec un point et non avec une virgule.
    La virgule empêche justement la concaténation... au niveau PHP c'est plus rapide.

    Voici mon code d'instanciation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    			$pdf = new InvoicePDF();
    			$pdf->AddPage();
    			$pdf->setInvoiceLabel(array('invoiceNumber'=>'Facture n°'));
    			$pdf->setInvoiceNumber('2008/45');
    			$pdf->setInvoiceWaterMarkText('OHLOL');
    			//$pdf->test();
    			$pdf->Output();

  5. #5
    Membre chevronné 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
    Par défaut
    Bizarre, ça devrait fonctionner si on s'en tient à ton exemple de code. Utilises-tu un debuger ? Que se passe-t-il dans la fonction getInvoiceNumber() ?
    As tu essayé de placer des echo en amont pour voir quoi est appelé et ce que contiennent les variables ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Par défaut
    Si j'essaye de l'afficher aucun soucis... sauf dans cette fonction Header!

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2005
    Messages : 138
    Par défaut
    Citation Envoyé par k o D Voir le message
    La virgule empêche justement la concaténation... au niveau PHP c'est plus rapide.

    Voici mon code d'instanciation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    			$pdf = new InvoicePDF();
    			$pdf->AddPage();
    			$pdf->setInvoiceLabel(array('invoiceNumber'=>'Facture n°'));
    			$pdf->setInvoiceNumber('2008/45');
    			$pdf->setInvoiceWaterMarkText('OHLOL');
    			//$pdf->test();
    			$pdf->Output();
    Mode boulette time On

    Comme quoi ca sert de vérifier l'ordonnancement des appels !!!

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Par défaut
    Tout à fait.
    D'ailleurs en fait ça m'a fait "tilt" dès que j'ai lu ton message.

    Merci en tout cas

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

Discussions similaires

  1. [POO] Accès à une variable de la classe parent
    Par escteban dans le forum Langage
    Réponses: 5
    Dernier message: 22/05/2008, 09h26
  2. Réponses: 5
    Dernier message: 23/11/2006, 13h55
  3. [POO] Problème d'accès à une variable privée
    Par Nadd dans le forum Langage
    Réponses: 8
    Dernier message: 17/09/2006, 21h43
  4. [Debutant][Tomcat] acces à une servlet impossible .
    Par michaelbob dans le forum Tomcat et TomEE
    Réponses: 11
    Dernier message: 04/04/2005, 10h01
  5. Acces à une variable-tableau de PHP
    Par Erwan21 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/02/2005, 13h55

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