diff --git a/rules-tests/CodeQuality/Rector/Foreach_/ForeachItemsAssignToEmptyArrayToAssignRector/Fixture/skip_assigned_before_in_conditional_foreach.php.inc b/rules-tests/CodeQuality/Rector/Foreach_/ForeachItemsAssignToEmptyArrayToAssignRector/Fixture/skip_assigned_before_in_conditional_foreach.php.inc new file mode 100644 index 00000000000..f7221fe3d67 --- /dev/null +++ b/rules-tests/CodeQuality/Rector/Foreach_/ForeachItemsAssignToEmptyArrayToAssignRector/Fixture/skip_assigned_before_in_conditional_foreach.php.inc @@ -0,0 +1,26 @@ +getItems() as $item) { + if ($item->hasGroup()) { + $groupList[] = ['id' => $item->getGroupId()]; + } else { + $list[] = ['id' => $item->getId()]; + } + } + + foreach ($groupList as $group) { + $list[] = $group; + } + + return $list; + } +} diff --git a/rules/CodeQuality/Rector/Foreach_/ForeachItemsAssignToEmptyArrayToAssignRector.php b/rules/CodeQuality/Rector/Foreach_/ForeachItemsAssignToEmptyArrayToAssignRector.php index 07881700cae..2727588bace 100644 --- a/rules/CodeQuality/Rector/Foreach_/ForeachItemsAssignToEmptyArrayToAssignRector.php +++ b/rules/CodeQuality/Rector/Foreach_/ForeachItemsAssignToEmptyArrayToAssignRector.php @@ -104,6 +104,10 @@ public function refactor(Node $node): ?Node } if ($this->shouldSkip($stmt, $emptyArrayVariables)) { + if ($this->isAppend($stmt, $emptyArrayVariables)) { + return null; + } + continue; }