Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2787 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Class et extends

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Class et extends

n°1603386
nycius
Ich liebe dich !
Posté le 24-08-2007 à 09:54:52  profilanswer
 

Salut,
 
Je fais des petits exos de class et j'aurai une question sur l'extends, en gros j'ai fait un systeme de commande vite fait, je passe deux commandes, nikel, j'aimerai ensuite avoir une class qui reprenne les commandes de l'autre pour en resortir le CA global de la commande.
 
QQun pourrait m'eclairer ?
 
 :jap:  
 

Code :
  1. <?php
  2. class commande
  3. {
  4.    var $produit;
  5.    var $prix_produit = 12;
  6.  
  7.    function __construct($nom_client)
  8.    {
  9.      $this->nom_client = $nom_client;
  10.    }
  11.  
  12.    function ajouter($nombre)
  13.    {
  14.      $this->produit[0] += $nombre;
  15.    }
  16.  
  17.    function prix()
  18.    {
  19.      return $this->produit[0]*$this->prix_produit;
  20.    }
  21.  
  22.    function afficher_commande()
  23.    {
  24.      echo 'Client : '.$this->nom_client;
  25.      echo '<br>Total commande : '.$this->prix();
  26.    }
  27. }
  28. class CA extends commande
  29. {
  30. function CA_global()
  31. {
  32.  echo '<br><br>CA global : '.$this->prix();
  33. }
  34. }
  35. $commande = new CA("Jacky" );
  36. $commande->ajouter(5);
  37. $commande->afficher_commande();
  38. echo '<br><br>';
  39. $commande2 = new CA("Maurice" );
  40. $commande2->ajouter(14);
  41. $commande2->afficher_commande();
  42. ?>


Message édité par nycius le 24-08-2007 à 09:55:19
mood
Publicité
Posté le 24-08-2007 à 09:54:52  profilanswer
 

n°1603407
turinatas
Posté le 24-08-2007 à 10:19:29  profilanswer
 

Quel est ton problème exactement ? car tu ne dis pas ce qui ne marche pas.
Au premier coup d'oeil, il me semble qu'il faut créer un constructeur dans ta classe CA, qui appelle le constructeur de la classe mère.

Code :
  1. function CA($nom_client)
  2. {
  3.     $this->$nom_client($nom_client);
  4. }

n°1603410
nycius
Ich liebe dich !
Posté le 24-08-2007 à 10:23:22  profilanswer
 

turinatas a écrit :

Quel est ton problème exactement ? car tu ne dis pas ce qui ne marche pas.
Au premier coup d'oeil, il me semble qu'il faut créer un constructeur dans ta classe CA, qui appelle le constructeur de la classe mère.

Code :
  1. function CA($nom_client)
  2. {
  3.     $this->$nom_client($nom_client);
  4. }



 
 
Désolé mais je vois toujours pas comment je peux appeler ma class CA et qu'elle reprendre le montant global de mes commandes passées
 
j'ai ajouter un constructeur dans ma class CA

Code :
  1. public function __construct($nom,$prix)   
  2.     {
  3.          parent::__construct($nom,$prix);
  4.     }

n°1603413
turinatas
Posté le 24-08-2007 à 10:39:59  profilanswer
 

Ah d'accord je n'avais pas compris ton problème.
Il faut que tu crée une variable de type static.
cette variable gardera sa valeur à chaque instance de ta classe, tu peux donc faire quelque chose de ce genre :

Code :
  1. static $montant_global = 0;
  2. function ajouter($nombre)
  3. {
  4.     parent::ajouter($nombre);
  5.     montant_global+= $nombre;
  6. }


 
Mais je ne vois pas trop l'intéret de faire de l'héritage, une seule classe suffirait je pense.

n°1603458
nycius
Ich liebe dich !
Posté le 24-08-2007 à 11:18:31  profilanswer
 

Oui c'est ce que j'ai fait au final en fin de compte
 
Merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Class et extends

 

Sujets relatifs
Template & classClass matrix : comprend pas
comment linker une class as2 avec un mc dynamique ?[PHP] Imbrication de méthodes dans une class
Utilisation d'une class de connexion Mysqlformulaire plus class PDF
[RoR] Class "read-only"Débutant en class
[dotNET] Soumission d'une class de communication en réseau[asp.net C#] sessionner une instance de class, oui/non?
Plus de sujets relatifs à : Class et extends


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)