Je n'arrive pas à comprendre cela. J'ai créé une classe simple qui renvoie un tableau de tableaux. Voici le constructeur de classe ...Impossible d'accéder aux membres du groupe
class BlogComments {
public $commentArray=array();
public $blogId;
function __construct($inId) {
if(!empty($inId)) {
$this->blogId=$inId;
$sql="select id,name,url,comment,email from blog_comment where blog_id=$inId";
$link2=GetConnection();
$query=mysql_query($sql,$link2) or die("Invalid blog id:".mysql_error());
while($row=mysql_fetch_array($query)) {
$this->commentArray=array(
"id"=>$row['id'],
"name"=>$row['name'],
"url"=>$row['url'],
"email"=>$row['email'],
"comment"=>$row['comment']
);
}
mysql_close($link2);
}
}
}
J'essaie d'accéder à chaque membre du tableau via une boucle. Il entre dans la boucle mais les valeurs renvoyées sont vides. J'ai vérifié que les données sont écrites dans le tableau. Voici mon code ...
include "include/commentclass.php";
$comments = new BlogComments($post->id);
foreach($comments as $comment) {
echo "<h4>".$comment->commentArray['name']."</h4>
<a href=\"".$comment->commentArray['url']."\">".$comment->commentArray['url']."</a>
<p>".$comment->commentArray['comment']."</p>";
}
Fondamentalement, il renvoie des balises vides. J'ai également vérifié que $ post-> id détient une valeur valide. Des idées de ce que je fais mal?
Merci pour l'aide, B
Vous ne pouvez pas itérer sur l'objet Référence. Comme le dit Netcoder dans sa réponse, vous devez implémenter Traversable afin de le faire. Ou simplement implémenter une méthode dans votre classe qui vous donnera le $ commentArray. – Andreas