$v) { if (is_string($k) && self::is_sensitive_key($k)) { $out[$k] = '[REDACTED]'; } else { $out[$k] = self::walk($v); } } return $out; } return $value; } private static function is_sensitive_key(string $key) : bool { $k = strtolower($key); foreach (self::$SENSITIVE_KEYS as $s) { if ($k === $s) return true; } return false; } }