Ajout et affichage de valeurs dans un tableau

Petit nouveau ! | 3 Messages

27 mars 2013, 23:03

Bonjour,

J'aimerais ajouter la valeur "cd456" dans le tableau $identifiant qui a pour valeur que "ab123" au début.

J'ai écrit ce code, mais aucun n'ajout se fait...
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <?php
    class Utilisateur {
            // attributs :
            var $nom;
            var $prenom;
            var $age;
            var $identifiant = array();
            // constructeur :
            function Utilisateur($nom, $prenom, $age, $identifiant) {
                $this->nom = $nom;
                $this->prenom = $prenom;
                $this->age = $age;
                $this->ide = $identifiant;              
                
            }
            // méthodes diverses :
            function affiche() {
   echo "Nom : $this->nom".'<br />'."Prénom : $this->prenom".'<br />'."Age : $this->age".'<br />'."Identifiant : $this->ide";
            }
            function ajout_com($id) {
                $identifiant[] = $id;
            }
            
        }
         
  
        $p = new Utilisateur("Mahe","Gael","60","ab123");
        $p->affiche();
        echo '<br />';
        $p->ajout_com('cd456');
        $p->affiche();
        ?>
    </body>
</html>
Merci d'avance

Mammouth du PHP | 571 Messages

28 mars 2013, 00:53

salut,

ton code est totalement obsolète pour php5 ça m'étonne que ça marche. si c'est dans un livre que tu l'as trouvé il est temps de s'en débarrasser.
On déclare un constructeur avec le mot clé __construct(), une variable de classe(un attribut) ne se déclare plus avec var mais par le nom de la variable précédée par private, protected, public.

Revenons à ton problème, tu n'as pas besoin de passer en paramètre du constructeur le tableau identifiant pour l'initialiser car ta méthode ajout_com() permet déjà d’initialiser le tableau et d'ajouter un élément.

pour afficher ton objet t'as la méthode __toString() qui affiche un objet sans pourtant faire echo.
je te renvoie au lien suivant pour apprendre POO en PHP:
http://g-rossolini.developpez.com/tutor ... /?page=poo
Modifié en dernier par yann18 le 28 mars 2013, 01:23, modifié 1 fois.

Petit nouveau ! | 3 Messages

28 mars 2013, 00:59

Merci !

C'est le cours de Paris descartes en 2eme année d'info que j'apprends ça.. Faudrait qu'on s'actualise :mrgreen:

Mammouth du PHP | 571 Messages

28 mars 2013, 01:30

Merci !

C'est le cours de Paris descartes en 2eme année d'info que j'apprends ça.. Faudrait qu'on s'actualise :mrgreen:
t'as intérêt à te tourner vers des bouquins récents de PHP et ne pas se cantonner uniquement à tes cours .
sinon je te filerai demain une ébauche de solution pour ce que tu veux faire.

Mammouth du PHP | 571 Messages

28 mars 2013, 15:25

voilà une des solutions à ton problème:
<?php
//Utilisateur.php

    class Utilisateur {
            // attributs :
            private $nom;
            private $prenom;
            private $age;
            private $identifiant = array();
            // constructeur :
            function __construct($nom, $prenom, $age) {
                $this->nom = $nom;
                $this->prenom = $prenom;
                $this->age = $age;   
                
            }
             
         // méthodes diverses :
            public function affiche() {
   		echo "Nom : $this->nom".'<br />'."Prénom : $this->prenom".'<br />'."Age : $this->age".'<br />';
		 if(!empty($this->identifiant) ){
		 foreach($this->identifiant as $cle=>$val )
   			echo "Identifiant n°$cle :$val <br>";
	
          	 }
            }

            public function ajoutCom($id) {
                $this->identifiant[] = $id;
            }
            
           
          	
  }//end class utilisateur


echo "<br>##########user dupon###########<br>";
$user=new Utilisateur("dupond","jean",99);
$user->ajoutCom("id1");
$user->ajoutCom("id2");
$user->affiche();
echo "<br>##########user toto###########<br>";
//user toto
$user=new Utilisateur("toto","je",22);
$user->ajoutCom("ident 1");
$user->ajoutCom("ident 2");
$user->affiche();


?>

 

Petit nouveau ! | 3 Messages

28 mars 2013, 15:29

Merci pour le lien et la correction, je vais travailler cela plus profondément.