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();
}
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à ;)
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à ;)