gretata
Messages postés172Date d'inscriptionlundi 22 mai 2006StatutMembreDernière intervention19 janvier 2011
-
15 janv. 2010 à 15:36
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 2011
-
16 janv. 2010 à 05:23
bonjour a tous !!
j'ai un problème au niveau des objets en PHP, je ne comprend pas bien comment ils fonctionnent.
j'essai de faire un get sur un objet en attributs de la classe, mais il me dit que ce n'est pas un objet.
Alors je voudrais savoir si quelqu'un pourrai m'expliquer comment faire pour avoir un objet en attribut, et comment l'utiliser.
je mets le code pour que ce soit plus visible.
require_once 'INews.php';
require_once 'News.bean.php';
class NewsImpl implements INews
{
private $bean;
/**
* Constructeur
*/
public function __construct($newsBean) {
if ($newsBean instanceof NewsBean) {
echo "TEST : ";
$this->bean = $newsBean;
}
}
/**
* get the Date of the news
*
*/
public function getText() {
$bean->getText();
}
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 15 janv. 2010 à 21:14
Salut,
Dans ta méthode getText() la variable $bean n'est pas définie. Elle vaut donc NULL.
Je pense que tu veux faire référence à la propriété $bean, que tu as définie dans le constructeur. : elle est accessible dans l'instance de la classe par :
$this -> bean
Ce qui fait que ta méthode getText() devrait ressembler à ça :
public function getText() {
$this -> bean -> getText();
}
Attention, si la méthode getText() de ta classe NewsBean renvoit quelque chose, il ne faut pas oublier de le retourner à nouveau.
--
Neige
Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 16 janv. 2010 à 05:23
En fait, c'est la vérification avec instanceof qui est inutile.
Là, tu laisses PHP vérifier que l'argument est un instance de NewsBean. Si ce n'est pas le cas, PHP va déclencher une erreur fatale qui peut être attrapée.
En vérifiant dans le constructeur comme tu le faisais, il convient de lancer une exception si l'argument n'est pas du type attendu. Pourquoi ? Simplement parce que sans ça, ta classe est inutilisable.
--
Neige
Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)