私はarray_pushでクラスの配列を作成するPHPファイルを持っています。この配列をJSON形式に変換する必要があります。 配列は完全に作成されますが、JSONにエンコードしようとすると、返される値は空の要素の配列になります。JSONへのPHPパス配列
の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);
JSONで返される値である:
[{},{}]
おかげ
EDITED
の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)
クラス定義:
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;
}
}
'var_dump($ return);'出力は何ですか? – Paulpro
はオブジェクトの$ classの値ですか?その場合は、オブジェクトのプロパティがpublicであることを確認してください.json_encodeはプライベートプロパティにアクセスしません。 EDIT - 明確にする - json_encodeはプライベートプロパティにアクセスできますが、クラス内のメソッドから実行される場合に限ります。 – TheOx
'$ var-> findimatge($ list [$ i] - > getIdBibl())'の出力は何ですか? '$ class'の前の値を上書きしています –