function VersionParser::manipulateVersionString
Increment, decrement, or simply pad a version number.
Support function for {@link parseConstraint()}
@phpstan-param string[] $matches
Parameters
array $matches Array with version parts in array indexes 1,2,3,4:
int $position 1,2,3,4 - which segment of the version to increment/decrement:
int $increment:
string $pad The string to pad version parts after $position:
Return value
string|null The new version
1 call to VersionParser::manipulateVersionString()
- VersionParser::parseConstraint in vendor/
composer/ semver/ src/ VersionParser.php - @phpstan-return non-empty-array<ConstraintInterface>
File
-
vendor/
composer/ semver/ src/ VersionParser.php, line 543
Class
- VersionParser
- Version parser.
Namespace
Composer\SemverCode
private function manipulateVersionString(array $matches, $position, $increment = 0, $pad = '0') {
for ($i = 4; $i > 0; --$i) {
if ($i > $position) {
$matches[$i] = $pad;
}
elseif ($i === $position && $increment) {
$matches[$i] += $increment;
// If $matches[$i] was 0, carry the decrement
if ($matches[$i] < 0) {
$matches[$i] = $pad;
--$position;
// Return null on a carry overflow
if ($i === 1) {
return null;
}
}
}
}
return $matches[1] . '.' . $matches[2] . '.' . $matches[3] . '.' . $matches[4];
}