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
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]
<?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;
}
}
?>
[/php]
la classe forum:
[php]
<?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>';
}
}
?>
[/php]
et enfin le fichier index:
[php]
<?php
function __autoload($class_name) {
require_once $class_name . '.php';
}
$user=new user(0,"nom","prenom","login");
$forum=new forum("forum1",$user);
echo($forum);
?>
[/php]
merci