$value) { $stringKey = (string) $key; if (is_scalar($value) || $value === null) { $normalized[$stringKey] = $value; continue; } if ($value instanceof Throwable) { $normalized[$stringKey] = [ 'class' => get_class($value), 'message' => $value->getMessage(), 'file' => $value->getFile(), 'line' => $value->getLine(), ]; continue; } if (is_array($value)) { $normalized[$stringKey] = $value; continue; } if (is_object($value)) { $normalized[$stringKey] = [ 'class' => get_class($value), ]; continue; } $normalized[$stringKey] = gettype($value); } return $normalized; } }