Skip to content

Commit 3b05cc3

Browse files
author
Greg Bowler
committed
tweak: nested empty arrays in objects
1 parent 53e355a commit 3b05cc3

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/DataObjectBuilder.php

+4-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ public function fromObject(
1414
$value = $this->fromObject($value, $dataObjectClass);
1515
}
1616
elseif(is_array($value)) {
17-
if(is_int(key($value))) {
17+
if(empty($value)) {
18+
$value = [];
19+
}
20+
elseif(is_int(key($value))) {
1821
array_walk($value, function(&$element)use($dataObjectClass) {
1922
if(is_object($element)) {
2023
$element = $this->fromObject($element, $dataObjectClass);

test/phpunit/DataObjectBuilderTest.php

+13
Original file line numberDiff line numberDiff line change
@@ -193,4 +193,17 @@ public function testEmptyNestedArray():void {
193193
self::assertSame("value2", $output->getString("key2"));
194194
self::assertSame([], $output->getArray("nested"));
195195
}
196+
197+
public function testEmptyNestedArrayInObject():void {
198+
$object = (object)[
199+
"key1" => "value1",
200+
"key2" => "value2",
201+
"nested" => [],
202+
];
203+
$sut = new DataObjectBuilder();
204+
$output = $sut->fromObject($object);
205+
206+
self::assertSame("value2", $output->getString("key2"));
207+
self::assertSame([], $output->getArray("nested"));
208+
}
196209
}

0 commit comments

Comments
 (0)