class Enumerator
Hierarchy
- class \SebastianBergmann\ObjectEnumerator\Enumerator
Expanded class hierarchy of Enumerator
2 files declare their use of Enumerator
- ExcludeList.php in vendor/
phpunit/ phpunit/ src/ Util/ ExcludeList.php - TestCase.php in vendor/
phpunit/ phpunit/ src/ Framework/ TestCase.php
File
-
vendor/
sebastian/ object-enumerator/ src/ Enumerator.php, line 18
Namespace
SebastianBergmann\ObjectEnumeratorView source
final class Enumerator {
/**
* @psalm-return list<object>
*/
public function enumerate(array|object $variable, Context $processed = new Context()) : array {
$objects = [];
if ($processed->contains($variable)) {
return $objects;
}
$array = $variable;
/* @noinspection UnusedFunctionResultInspection */
$processed->add($variable);
if (is_array($variable)) {
foreach ($array as $element) {
if (!is_array($element) && !is_object($element)) {
continue;
}
/** @noinspection SlowArrayOperationsInLoopInspection */
$objects = array_merge($objects, $this->enumerate($element, $processed));
}
return $objects;
}
$objects[] = $variable;
foreach ((new ObjectReflector())->getProperties($variable) as $value) {
if (!is_array($value) && !is_object($value)) {
continue;
}
/** @noinspection SlowArrayOperationsInLoopInspection */
$objects = array_merge($objects, $this->enumerate($value, $processed));
}
return $objects;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
Enumerator::enumerate | public | function | @psalm-return list<object> |