基本的に、私が持っているPHPクラスオブジェクトをエンコードしようとしています。それをMongoDBに直接挿入しようとしています。問題は、私のクラスには以前のバージョンのクラスを保持する配列変数があるため、JSONエンコードではそれらのprivate変数にアクセスできません。どうすればこの問題を回避できますか?私のクラスの設定方法の例は、(それははるかに大きいのですが、これはあなたのアイデアを得るのを助ける必要があります)以下であるPHP/MongoDB JSONエンコード - 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オブジェクトのデータを表示しますが、$ prior_version配列のjsonエンコーディングは変数がprivateであるため空白です。これを修正するには、各アプリケーションオブジェクトの変数を公開する必要はありませんか?
ありがとうございます!
ちょっと小さな問題です: 'クラスApp(){'は 'class App {'でなければなりません。 – mc10