public function test() { $jsonString = '[]'; $jsonStringString = '["a"]'; $jsonStringInteger = '[2]'; $jsonStringBool = '[true]'; $jsonStringNull = '[null]'; $jsonStringObject = '[{}]'; $jsonStringArray = '[[]]'; // serialization // creation from string $this->assertEquals($jsonString, (new JSONArray())->__toString()); $this->assertEquals(json_decode($jsonString), (new JSONArray())->toArray()); $this->assertEquals(json_decode($jsonStringString), (new JSONArray($jsonStringString))->toArray()); $this->assertEquals(json_decode($jsonStringInteger), (new JSONArray($jsonStringInteger))->toArray()); $this->assertEquals(json_decode($jsonStringBool), (new JSONArray($jsonStringBool))->toArray()); $this->assertEquals(json_decode($jsonStringNull), (new JSONArray($jsonStringNull))->toArray()); $this->assertEquals(json_decode($jsonStringObject), (new JSONArray($jsonStringObject))->toArray()); $this->assertEquals(json_decode($jsonStringArray), (new JSONArray($jsonStringArray))->toArray()); // building arrays $a = new JSONArray(); $a->put('x'); $a->put(new JSONArray()); $a1 = '["x",[]]'; $this->assertEquals($a1, $a->write()); // accessing parameters $this->assertEquals("x", $a->get(0)); $this->assertEquals("[]", $a->get(1)); }