<?php class Main implements \JsonSerializable { private $objA=[], $objB=[]; public function start() { for ($i = 0; $i < 10; $i++) { $objB=$this->getObjBandAddToStack($i); $this->objA[]=new ClassA($objB); } } private function getObjBandAddToStack($i) { if(isset($this->objB[$i/2])) { $objB=$this->objB[$i/2]; } else { $objB=new ClassB(); $this->objB[$i]=$objB; } return $objB; } public function jsonSerialize(){ return [ 'objA' => $this->objA, 'objB' => $this->objB, ]; } } class ClassA implements \JsonSerializable { private $objB; public function __construct(ClassB $objB) { $this->objB=$objB; $objB->joinGroup($this); } public function jsonSerialize(){ return [ 'objB' => $this->objB, ]; } } class ClassB implements \JsonSerializable { private $objAgroup=[]; public function joinGroup($objA) { $this->objAgroup[]=$objA; } public function jsonSerialize(){ return [ 'objAgroup' => $this->objAgroup, ]; } } $main=new Main(); $main->start(); var_dump(json_encode($main)); var_dump(json_last_error()); var_dump(json_last_error_msg());
You have javascript disabled. You will not be able to edit any code.