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] Erreur sur des tableaux en POO


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 7
    Points : 8
    Points
    8
    Par défaut [POO] Erreur sur des tableaux en POO
    Bonjour,

    Je suis tout nouveau en PHP et j'ai essayé de créer en POO une méthode ayant pour effet d'afficher la liste des articles contenus dans un panier client. Les articles figurent les uns après les autres dans un tableau scalaire parcouru par une boucle.

    Le script ne fonctionne pas, si quelqu'un pouvait me filer un p'tit coup de pouce ...
    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
     
    <?php
    class client
    {
    	public	$nom;
    	public	$prenom;
    	public	$adresse;
    	public	$code_postal;
    	public	$ville;
    	public	$carte_bancaire;
    	public	$panier;
    	public	$prix_panier = 0; //Nous avons ici fixé une valeur par défaut, si cette derni&egrave;re n'est pas modifiée par l'objet elle sera toujours de 0.
     
     
    	public function liste_panier()
    {											 
    	foreach ($panier as $articles)
    		{
    		print("Votre panier comporte actuellement : $articles");
    		} 
    }
     
    	public function coordonnees()
    	{
    	print("Vos coordonnées sont les suivantes : nom $this->nom $this->prenom $this->adresse $this->code_postal $this->ville");
    	}
     
    	public function prix_panier()
    	{
    	print ("Le prix de votre panier est actuellement de $this->prix_panier");
    	}	
     
    }	
     
    $tab = array("bananes", "fraises", "kiwi");
    $client_site = new client; 
    $panier = new ArrayObject($tab);	 
     
     
     
    $client_site->nom = "NAME";
    $client_site->prenom ="FORNAME";
    $client_site->adresse =" ADRESS";
    $client_site->code_postal = "ZIP CODE";
    $client_site->ville = "COUNTRY";
    $client_site->carte_bancaire =  "CC NUMBER";
    $client_site->prix_panier = "PRICE";
     
    $client_site->liste_panier();
    ?>

  2. #2
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    Quand tu dis que ça ne marche pas, c'est qu'il y a une erreur ou que ça ne fait rien ?

    Qu'est-ce qui est contenu dans ton panier ? des chaines de caractères ?

    Quoi qu'il arrive, tu devrais modifier 2 choses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public function liste_panier()
    {											 
    	foreach ($panier as $articles)
    	{
    		echo 'Votre panier comporte actuellement : '.$articles;
    	} 
    }
    Et lors de la déclaration de l'instance fait plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $client_site = new client();

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Voici les messages d'erreur :

    Notice: Undefined variable: panier in ... on line 16
    Warning: Invalid argument supplied for foreach() in .. on line 16


  4. #4
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Ta variable panier est vide au moment où tu fais ton foreach donc c'est normal que tu es ces erreurs. Pour t'en assurer tu n'as qu'à faire un var_dump($panier) juste avant ta ligne 16 et tu verras le résultat.

    Vu que $panier est de type ArrayObject, il faudrait que tu crées une fonction dans cette classe qui te renvoit un tableau.

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Salut, une petite erreur: tu assignes $tab a la variable $panier et pas a $client_site->panier, il faut donc ecrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    $client_site->panier = new ArrayObject($tab);
    ...
    Comme tu l'as fait pour les autres parametres en fait.

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

Discussions similaires

  1. [Component Pascal] Calculatrice sur des tableaux
    Par Ruben_Blanco dans le forum Autres IDE
    Réponses: 1
    Dernier message: 09/11/2008, 16h20
  2. permutations/combinaisons sur des tableaux dynamiques
    Par pEAk230 dans le forum Langage
    Réponses: 5
    Dernier message: 19/04/2006, 13h18
  3. [Eval] Problème de boucle for sur des tableaux
    Par battle_benny dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/01/2006, 23h55
  4. Réponses: 2
    Dernier message: 19/08/2003, 18h04
  5. free sur des tableaux "a moitié dynamiques"
    Par barthelv dans le forum C
    Réponses: 4
    Dernier message: 31/07/2003, 15h30

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