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] Variable dans une classe


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut [POO] Variable dans une classe
    Un tout petit problème de variable de classe qui ne veut pas fonctionner.

    J'aimerais avoir une variable dans la classe pdf, donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var $width=Array(1,2,3,4);
    Et j'aimerais utiliser cette variable dans les fonctions de la classe pdf, donc :
    Mais ca ne fonctionne pas ....

    Le code, on peut voir qu'actuellement, je répéte deux fois le code de width, car je n'arrive pas à récupérer ca valeur dans la fonction header()



    <?php
    //&#160;CONFIGURATION&#160;*********/
    $sql&#160;=&#160;'SELECT&#160;&#160;`id`,&#160;`nom`,&#160;`date`,&#160;`site`,&#160;`boite`,&#160;`cd`,&#160;`com`&#160;,&#160;`cle`&#160;&#160;FROM&#160;`inv_licence`&#160;'.$condition.'&#160;ORDER&#160;BY&#160;`site`,&#160;`nom`,&#160;`sn`';
    //&#160;Taille&#160;des&#160;colonnes
    if($_SESSION&#91;'droit_info']=='oui')&#160;&#160;&#160;&#160;&#160;&#160;$width=array(5,50,30,10,10,10,85,80);&#160;&#160;&#160;&#160;&#160;&#160;//&#160;<=&#160;ICI&#160;**********************
    else&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$width=array(5,50,30,10,10,10,165);
    $nomfichier&#160;=&#160;date('Ymd').'_LicenceEnregistré.pdf';


    class&#160;
    PDF&#160;extends&#160;FPDF
    {

    &#160;&#160;&#160;&#160;&#160;&#160;var&#160;
    $width=array(5,50,30,10,10,10,85,80);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//&#160;<=&#160;ICI&#160;**********************
    &#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;
    function&#160;Header()
    &#160;&#160;&#160;&#160;&#160;&#160;{
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    //&#160;CONFIGURATION&#160;*********/
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    if($_SESSION&#91;'droit_info']=='oui')&#160;&#160;&#160;&#160;&#160;&#160;$header=array('ID','Nom','Date','Site','Boite','CD','Commentaires','Clé');
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $header=array('ID','Nom','Date','Site','Boite','CD','Commentaires');
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $titre&#160;=&#160;'Liste&#160;des&#160;licences&#160;enregistrés&#160;au&#160;'.FormeDateCourt(date('Y/m/d'));
    &#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(
    $_SESSION&#91;'droit_info']=='oui')&#160;&#160;&#160;&#160;&#160;&#160;$width=array(5,50,30,10,10,10,85,80);&#160;&#160;&#160;&#160;&#160;&#160;//&#160;<=&#160;ICI&#160;**********************
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    else&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$width=array(5,50,30,10,10,10,165);


    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    //Logo
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $this->Image('image/interface/logo.jpg',10,8,33);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    //Arial&#160;bold&#160;15
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $this->SetFont('Arial','B',15);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $this->SetLineWidth(.5);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//&#160;Taille&#160;de&#160;la&#160;ligne&#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//Move&#160;to&#160;the&#160;right
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $this->Cell(80);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    //Title
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $this->Cell(100,10,$titre);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    //Line&#160;break
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $this->Ln(25);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    //**&#160;HEADER
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $this->SetFillColor(167,200,193);&#160;&#160;&#160;&#160;&#160;&#160;//&#160;Couleur&#160;du&#160;rectangle&#160;(rouge)
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $this->SetTextColor(0,0,0);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//&#160;Couleur&#160;du&#160;texte&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;(jaune)
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $this->SetDrawColor(0,0,0);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//&#160;Couleur&#160;des&#160;lignes&#160;&#160;&#160;&#160;&#160;&#160;(vert)
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $this->SetLineWidth(.3);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//&#160;Taille&#160;de&#160;la&#160;ligne&#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $this->SetFont('','B','9');
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    //Header
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//&#160;$w=$pdf->width;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<=&#160;ICI&#160;**********************
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $w=$width;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for(
    $i=0;$i<count($header);$i++)
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $this->Cell($w&#91;$i],7,$header&#91;$i],1,0,'C',1);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $this->Ln();
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    //**&#160;FIN&#160;HEADER&#160;**//
    &#160;&#160;&#160;&#160;&#160;&#160;
    }

    &#160;&#160;&#160;&#160;&#160;&#160;
    //&#160;Dessin&#160;du&#160;tableau
    &#160;&#160;&#160;&#160;&#160;&#160;
    function&#160;LoadData($sql)
    &#160;&#160;&#160;&#160;&#160;&#160;{

    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com

  2. #2
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut
    Salut Space Cowboy
    je pense que ce n'est pas la même variable en fait:
    la premiere est une variable php $width (valide sur la page)
    la seconde est un attribut de la classe pdf: tu devrais donc passer $width dans le constructeur de ta classe et n'oublie pas de définir le type de l'attribut (private, public, protected).

    bon dev'
    Le monde se divise en deux: ceux qui utilisent le tag et les autres.

  3. #3
    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 : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Salut,

    A l'intérieur de la classe pdf, ne devrais-tu pas utiliser $this->width au lieu de $pdf->width ?
    Ce qui implique que tu l'ai initialisée lors de l'instantiation ou que tu utilises la valeur initialisée dans ta classe. Par contre, ce dernier cas ne te permet pas de paramétrer.

    --- edit ---

    Par contre le "echo" devrait être remplacé par un print_r pour afficher un tableau.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Comme le dit jml94, tu dois utiliser $this->width pour récupérer la valeur.

    $pdf->width ne référence rien car $pdf n'existe pas dans le scope (contexte) d'execution de la fonction/méthode Header.


    A cela je rajouterais juste que pour que cela fonctione il faut bien sur instancier un objet PDF et non FPDF.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ....n'oublie pas de définir le type de l'attribut (private, public, protected).
    Malheureusement il ne peut pas d'après ce que l'on peut déterminer, c'est une syntaxe PHP4.

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/09/2008, 11h53
  2. [AS2]Visibilité de variable dans une class
    Par ViveLesQuads dans le forum ActionScript 1 & ActionScript 2
    Réponses: 6
    Dernier message: 06/12/2007, 16h47
  3. Ajout d'une variable dans une class fait planter
    Par Geoff-sk8 dans le forum C++
    Réponses: 4
    Dernier message: 11/10/2006, 14h27
  4. [POO] Fonctions dans une classe abstraite
    Par Seth77 dans le forum Langage
    Réponses: 4
    Dernier message: 27/06/2006, 13h21
  5. Réponses: 2
    Dernier message: 17/12/2005, 20h52

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