Probleme attribut objet

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probleme attribut objet

par hufor ija » 13 avr. 2007, 10:38

Ok ben je testerai ca ce soir, merci

par titerm » 13 avr. 2007, 10:31

bah j'ai testé sur wamp...
avec un php 5.2.0

par Invité » 13 avr. 2007, 10:19

ba je comprend pas la, c est peut etre du a wamp alors?

par titerm » 13 avr. 2007, 09:54

bah meme sans cette ligne ca marche pour moi...

Code : Tout sélectionner

forum: forum1 userID: 0

par huforija » 13 avr. 2007, 08:01

Oui c est normal que ca fonctionne :D , j ai oublié de supprimé une ligne.
Il faut enlevé:
$this->user->setUserId('12');

dans la méthode __tostring() de forum.php.

dans ce cas ca ne marche pas. Et c est la que je ne comprend pas?

par titerm » 13 avr. 2007, 07:50

Il y a une erreur dans la premiere classe. Tu définies a la fois le constructeur par le nom de la class et par le nom __construct(), cela devrait te générer un warning de type strict. Je te conseil de ne plus utiliser le constructeur du type nom de class et d'utiliser systématiquement __construct().

Ceci étant dit, ne voyant pas d'autre pb, j'ai tester ton code et il fonctionne correctement. J'ai bien en sortie un nom pour le forum.

Code : Tout sélectionner

forum: forum1 userID: 12

Probleme attribut objet

par huforija » 13 avr. 2007, 00:06

Bonjour, je suis debutant en php5 et je rencontre quelques difficultes.

J 'ai 2 classes: forum et user.
user comporte plusieurs attributs: des chaines.
forum contient deux attributs: une chaine et un user.

Lorsque j'initie ces deux objets et que je fais un echo du forum, le user du forum est vide, je ne comprend pas pourquoi?

classe user:
<?php

class user{

 private $id;
 private $nom;
 private $prenom;
private $login;


  // Constructeur de la classe.
    function user($id,$nom,$prenom,$login) {
        $this->id = $id;
        $this->nom = $nom;
        $this->prenom = $prenom;
        $this->login = $login;
    }

     function __construct(){
     }




    // Méthode d'affichage de l'objet.
    function __tostring() {
        return 'user id: '.$this->id.'<br>'.'user nom: '.$this->nom.'<br>'.'user prenom: '.$this->prenom.'<br>'.'user login: '.$this->login.'<br>';
    }

    // méthode qui retourne l'id du user
    function getUserId(){
     return $this->id;
    }

    // méthode qui retourne le nom du user
    function getUserNom(){
     return $this->nom;
    }

    // méthode qui retourne le prenom du user
    function getUserPrenom(){
     return $this->prenom;
    }

    // méthode qui retourne l'id du user
    function getUserLogin(){
     return $this->login;
    }



    // méthode qui modifie l'id du user
    function setUserId($id){
     $this->id=$id;
    }

    // méthode qui modifie le nom du user
    function setUserNom($nom){
     $this->nom=$nom;
    }

    // méthode qui modifie le prenom du user
    function setUserPrenom($prenom){
     $this->prenom=$prenom;
    }

    // méthode qui modifie l'id du user
    function setUserLogin($login){
     $this->login=$login;
    }
}

?>

la classe forum:
<?php

class forum{

 private $name;
 private $user;

  // Constructeur de la classe.
    function forum($name,$user) {

        $this->name = $name;
        $this->user = $user;
    }

    // Méthode d'affichage de l'objet.
    function __tostring() {
        $this->user->setUserId('12');
        return 'forum: '.$this->name.'<br>userID: '.$this->user->getUserId().'<br>';
    }


}

?>
et enfin le fichier index:
<?php

 function __autoload($class_name) {
    require_once $class_name . '.php';
}

$user=new user(0,"nom","prenom","login");
$forum=new forum("forum1",$user);

echo($forum);


?>
merci