json_encode($object) qui ne fonctionne pas
Posté : 23 mai 2011, 18:11
Bonsoir,
J'ai une classe Photo, dont voici un extrait :
Une idée ?
J'ai une classe Photo, dont voici un extrait :
class Photo Extends Object_Model {
private $id;
private $galerie_id;
private $date;
private $titre;
private $fichier;
private $position;
private $statut;
private $extension;
private $tmp_file;
private $upload_folder;
public function __construct($object_or_array_or_id = '') {
global $lang;
if(is_object($object_or_array_or_id)) {
$item = $object_or_array_or_id;
}
if(is_array($object_or_array_or_id)) {
$item = $object_or_array_or_id;
}
elseif(is_numeric($object_or_array_or_id)) {
$item = Sql::get_row_from_query(sprintf("SELECT PHOTOS.*
FROM " . TABLES__GALERIES_PHOTOS . " PHOTOS
WHERE id = '%d'", mysql_real_escape_string($object_or_array_or_id)));
}
if(!empty($item)) {
$this->hydrate($item);
$this->extension = Object_Model::file_get_extension($this->fichier);
}
}
public function hydrate($array) {
foreach($array as $key => $value) {
$this->$key = $value;
}
}
public function __get($property) {
if(isset($this->$property)) {
return $this->$property;
}
}
public function __set($property, $value) {
$this->$property = $value;
}
}
J'essaye désespérément de renvoyer une représentation JSON de mon objet instancié, sans succès :$photo = new Photo();
$photo->galerie_id = $clean['parent_id'];
$photo->fichier = $photo->galerie_id . '-' . $_FILES['Filedata']['name'];
$photo->position = $max_position + 1;
$photo->statut = 1;
echo json_encode($photo);
me renvoie alors qu'un print_r($photo) m renvoie bien :{}
Je suis pourtant en PHP 5.3Photo Object
(
[id:Photo:private] =>
[galerie_id:Photo:private] => 1
[date:Photo:private] =>
[titre:Photo:private] =>
[fichier:Photo:private] => 1-fotolia_4582794.jpg
[position:Photo:private] => 9
[statut:Photo:private] => 1
[extension:Photo:private] =>
[tmp_file:Photo:private] =>
[upload_folder:Photo:private] =>
)
Une idée ?