Référence à un objet dans une classe -> Fatal Error

Résolu
mandark Messages postés 16 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 10 mai 2006 - 11 févr. 2006 à 17:30
mandark Messages postés 16 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 10 mai 2006 - 12 févr. 2006 à 11:44
<?php


Class Test2{
function sayHello(){echo "hello";}
}


Class Test1{
private $var1;
function Test1(){$var1 = new Test2();}
function faisParlerTest2(){$var1->sayHello();}
}


$test1 = new Test1();
$test1->faisParlerTest2();


:?>


/ Fatal error: Call to a member function sayHello() on a non-object in test.php on line 12

5 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 42
11 févr. 2006 à 20:47
Salut,

moi je proposerais plutot $this...



<?php



Class Test2{
function sayHello(){echo "hello";}
}



Class Test1{
private $var1;
function Test1(){$this->var1 = new Test2();}
function faisParlerTest2(){$this->var1->sayHello();}
}



$test1 = new Test1();
$test1->faisParlerTest2();



:?>



In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
3
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
11 févr. 2006 à 18:01
Class Test1 extends Test2{
private $var1;
function Test1(){$var1 = new Test2();}
function faisParlerTest2(){$var1->sayHello();}
}

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
11 févr. 2006 à 21:30
Effectivement ça donne ça au final :

<?php

Class Test2
{
function sayHello()
{
echo 'hello';
}
}

Class Test1
{
private $var1;
function Test1()
{
$this->var1 = new Test2();
}
function faisParlerTest2()
{
$this->var1->sayHello();
}
}

$test1 = new Test1();
$test1->faisParlerTest2();

?>

je n'avais pas vu.

a +

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 42
11 févr. 2006 à 21:39
Salut,
On peut aussi avec une héréditée, mais c'est pas forcément possible, faut voir en fonction de la suite...



<?php



Class Test2{
function sayHello(){echo "hello";}
}



Class Test1 extends Test2{
function Test1(){Test2:Test2();}
function faisParlerTest2(){Test2:sayHello();}
}



$test1 = new Test1();
$test1->faisParlerTest2();



?>



In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mandark Messages postés 16 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 10 mai 2006
12 févr. 2006 à 11:44
Ah oui effectivement, honte à moi, j'avais oublié le $this ...
Merci !!!!!!!!!!!!!!!!! (o:
merci à tous (:
0