J'ai un fichier PHP qui crée un tableau de classe avec array_push et j'ai besoin de convertir ce tableau au format JSON. Le tableau est créé parfait mais quand j'essaye d'encoder en JSON la valeur retournée est un tableau d'éléments vides.Php pass array à JSON
le code de php:
$return = array();
if($_GET['action'] == 'loadImg'){
$id = $_GET['idAct'];
$class = $var->selectActById($id);
$list = $class->getImatgesAct();
for($i = 0; $i < sizeof($list);$i++){
$class = $var->findimatge($list[$i]->getIdBibl());
array_push($return, $class);
}
}
echo json_encode($return,true);
La valeur retournée par JSON est:
[{},{}]
Merci
ÉDITÉE
le var_dump:
array
0 =>
object(imatgeclass)[4]
private 'idimatge' => string '1' (length=1)
private 'nomimatge' => string 'hydra' (length=5)
private 'urlimatge' => string 'biblioimg/2012-05-06-23-19-17.jpg' (length=33)
1 =>
object(imatgeclass)[3]
private 'idimatge' => string '2' (length=1)
private 'nomimatge' => string 'pen' (length=3)
private 'urlimatge' => string 'biblioimg/2012-05-06-23-19-36.jpg' (length=33)
La définition de classe:
class imatgeclass{
private $idimatge, $nomimatge, $urlimatge;
public function setData($idimatge,$nomimatge,$urlimatge){
$this->idimatge = $idimatge;
$this->nomimatge = $nomimatge;
$this->urlimatge = $urlimatge;
}
public function getIdImatge(){
return $this->idimatge;
}
public function setIdImatge($idimatge){
$this->idimatge = $idimatge;
}
public function getNomImatge(){
return $this->nomimatge;
}
public function setNomImatge($nomimatge){
$this->nomimatge = $nomimatge;
}
public function geturlimatge(){
return $this->urlimatge;
}
public function setUrlImatge($urlimatge){
$this->urlimatge = $urlimatge;
}
}
Que fait 'var_dump ($ return);' sortie? – Paulpro
est la valeur de $ class un objet? Si c'est le cas, assurez-vous que les propriétés de l'objet sont publiques - json_encode n'accède pas aux propriétés privées. EDIT - pour clarifier - json_encode peut accéder aux propriétés privées mais seulement si elles sont exécutées à partir d'une méthode dans la classe. – TheOx
Que devient $ var-> findimatge ($ list [$ i] -> getIdBibl()) 'en sortie? Il écrase la valeur précédente de '$ class' –