2012-05-07 2 views
3

나는 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에 의해 ​​반환되는 값은 다음과 같습니다

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) 
:

[{},{}] 

감사

위해서 var_dump 편집 6,

클래스 정의 :

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; 
} 
} 
+1

'var_dump ($ return);'출력은 무엇입니까? – Paulpro

+0

은 $ class 객체의 값입니까? 그렇다면 객체의 속성이 public인지 확인하십시오. json_encode는 개인 속성에 액세스하지 않습니다. EDIT - 명확히하기 위해 - json_encode는 개인 속성에 액세스 할 수 있지만 클래스 내의 메소드에서 실행되는 경우에만 가능합니다. – TheOx

+0

'$ var-> findimatge ($ list [$ i] -> getIdBibl())'출력은 무엇입니까? '$ class'의 이전 값을 덮어 씁니다. –

답변

4

개체의 속성은 모든 개인 - 그들은로 json_encode에 액세스 할 수하기 위해 공개 할 필요가있다. 또는 객체 메소드 내에서 json_encode를 호출해야합니다.

+0

@ TheOnyx 대단히 고맙습니다. 개인적으로 실수를했습니다. 감사합니다. –