Так что в основном я пытаюсь кодировать объект класса php, который у меня есть, и вставлять его непосредственно в MongoDB. Проблема в том, что мой класс имеет переменную массива, предназначенную для хранения предыдущих версий класса, поэтому эти частные переменные не могут быть доступны с помощью JSON-кодирования. Как я могу обойти это? Пример того, как мой класс устанавливается ниже (это гораздо больше, но это должно помочь вам получить идею)PHP/MongoDB JSON Encode - не удается получить доступ к приватным переменным внутреннего класса при вызове json_encode()
class App {
private $version_number = "1.0.1";
private $previous_versions= array(); //each element in the array will be a previous version of the App object
public function storeOldVersions(){
$clone = clone $this;
array_unshift($this->previous_versions, $clone);
}
}
Так что я сделать что-то вроде:
$app = new App();
$app->storeOldVersions();
echo json_encode($app);
И эхо json_encode правильно показывает данные объекта $ app, но json-кодировка массива $ previous_version пуста, потому что его переменные являются частными. Как я могу исправить это, не открывая переменные каждого объекта приложения?
Спасибо!
Просто небольшая проблема: 'class App() {' должно быть 'class App {'. – mc10