Остальные ответили на вопрос к вашей первой проблеме. Чтобы обновить элементы объекта, вы должны использовать $this
в контексте объекта. Внешне используйте переменную, ссылающуюся на объект, так как ваши члены общедоступны:
class Photo {
public $file;
public $date;
}
$photo = new Photo;
$photo->file = 'file';
$photo->date = time();
echo json_encode($photo);
Это не очень хорошая практика проектирования, чтобы публично выставлять члены объекта, но json_encode()
не будет добавлять непубличные члены в строку json, поэтому вам нужен ваш собственный метод кодирования, чтобы идти по этому пути:
class Photo {
private $file;
private $date;
public function __construct($file, $date) {
$this->file = $file;
$this->date = $date;
}
public function __encode() {
$json = new stdClass;
foreach (get_object_vars($this) as $name => $value) {
$this->$name = $value;
}
return json_encode($json);
}
}
Ваш второй вопрос, по-видимому, подразумевает, что вы можете захотеть сохранить несколько фотографий в виде объекта Photo. Вы можете просто поместить несколько Photo
объектов в массив.