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] Portée des variables


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
    Mars 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 129
    Par défaut [POO] Portée des variables
    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function addProduit($id, $nb) {
      if ($id==0 || $nb==0) {
        return false;
      } else {
        $n = count($this->$produits);
        echo $n;
        $this->$produits[$n]=$id;
        echo "/".$this->$produits[$n]."/";
        $this->$quantite[$n]=$nb;
        return true;
      }
    }
    par contre, c'est bizarre :

    Quand j'apelle ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function getItem($i) {
      $tab["prod"] = $this->$produits[$i];
      $tab["qte"] = $this->$quantite[$i];
      return $tab;
    }
    ça me retourne TOUJOURS[1 ; 1]

    z'avez une idée

  2. #2
    Membre éprouvé
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Par défaut
    $produit n'est défini nulle part. Je ne sais pas si c'est une globale ou quoi, mais soit il nous manque un ptit bout, soit c'est ton problème ^_^
    [edit]C'est valable aussi pour $quantite[/edit]

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 129
    Par défaut
    Voilà le fichier complet :

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    <?php
    	class Commande {
    		var $produits;
    		var $quantite;
    		var $panier_cadeau;
     
    		// Constructeur
    		function Commande() {
    			$this->$produits = array();
    			$this->$quantite = array();
    			$this->$embalage;
    		}
     
    		//Pour ajouter un produit
    		//$id est l'id du produit
    		//$nb est la quantite
    		function addProduit($id, $nb) {
    			if ($id==0 || $nb==0) {
    				return false;
    			} else {
    				$n = count($this->$produits);
    				echo $n;
    				$this->$produits[$n]=$id;
    				echo "/".$this->$produits[$n]."/";
    				$this->$quantite[$n]=$nb;
    				return true;
    			}
    		}
     
    		function setProduit($id, $nb) {
    			if ($id > count($this->$produits-1)) {
    				return false;
    			} else {
    				$this->$quantite[$id] = $nb;
    				return true;
    			}
    		}
     
    		function removeProduit($id) {
    			if ($id > count($this->$produits-1)) {
    				return false;
    			} else {
    				$tabp1 = array();
    				$tabp2 = array();
    				$tabq1 = array();
    				$tabq2 = array();
    				for ($i=0 ; $i<$id ; $i++) {
    					$tabp1[$i] = $this->$produits[$i];
    					$tabq1[$i] = $this->$quantite[$i];
    				}
    				$c = count($this->$produits);
    				for ($i=$id+1 ; $i<c ; $i++) {
    					$tabp2[$i] = $this->$produits[$i];
    					$tabq2[$i] = $this->$quantite[$i];
    				}
    				$this->$produits = array_merge($tabp1, $tabp2);
    				$this->$quantite = array_merge($tabq1, $tabq2);
    				return true;
    			}
    		}
     
     
    		function getItem($i) {
    			$tab["prod"] = $this->$produits[$i];
    			$tab["qte"] = $this->$quantite[$i];
    			return $tab;
    		}
     
    		function setEmbalage($i) {
    			$this->$embalage = $i;
    		}
     
    		function getEmbalagePrix() {
    		}
     
    		function getFraisPort() {
    		}
     
    		function afficher() {
    			for ($i=0 ; $i<count($this->$produits) ; $i++) {
    				$t = $this->getItem($i);
    				echo 'produit: '.$t["prod"].' // Qté: '.$t["qte"].'<br>';
    			}
    			$popup = '<html><head><title>Votre Commande</title></head>';
    			$popup .= '<body><table border="1"><tr><td><b>Ref.</b></td><td><b>Désignation</b></td>';
    			$popup .= '<td><b>P.U.</b></td></tr>';
    			$requete = "";
    			$tva = 0;
    			$prix = 0;
    			for ($i=0 ; $i<count($this->$produits) ; $i++) {
    				$requete .= 'SELECT id, intitule, type, prix FROM produits WHERE id='.($this->$produits[$i]); 
    				echo $requete;
    				$query = mysql_query($requete);
    				$result = mysql_fetch_array($query);
    				$popup .= '<tr><td>'.$result["id"].'</td>';
    				$popup .= '<td>'.$result["intiule"].'</td>';
    				$popup .= '<td>'.$result"prix"].'</td></tr>'
    			}
    			echo '</table>';
    			$popup .= '<form action="validercommande.php" action="POST"><input type="hidden" name="commande" value="'.serialize($this).'">';
    			$popup .= '<center><input type="submit" value="Valider la Commande"></center></form></body></html>';
    			echo $popup;
    		}
    	}

  4. #4
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Par défaut
    faut pas mettre de $ après $this... Donc pour accéder à $produit tu fais ça:

    $this->produit
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 129
    Par défaut
    OK, merci, je débute en POO PHP et j'avais pas fait attention à ça.

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

Discussions similaires

  1. [POO] Portées des variables //
    Par hisy dans le forum Langage
    Réponses: 5
    Dernier message: 01/02/2007, 13h55
  2. [POO] Portée des variables de classe
    Par guidav dans le forum Langage
    Réponses: 3
    Dernier message: 31/01/2007, 19h27
  3. [POO] un truc me chagrine (portée des variables ?)
    Par novices dans le forum Langage
    Réponses: 2
    Dernier message: 08/08/2006, 15h05
  4. [XSL]Problème de portée des variables
    Par djulesp dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/09/2004, 10h34
  5. [Portée] portée des variables
    Par parksto dans le forum Langage
    Réponses: 7
    Dernier message: 09/05/2004, 21h05

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