Normal arguments pass a value copy, so changing the parameter does not change the caller variable.

Value Copies

value_copy.php
<?php
function addOne(int $value): int {
    $value = $value + 1;
    return $value;
}

$number = ;
$changed = addOne($number);

echo "number=" . $number . "\n";
echo "changed=" . $changed . "\n";
<?php
function addOne(int $value): int {
    $value = $value + 1;
    return $value;
}

$number = ;
$changed = addOne($number);

echo "number=" . $number . "\n";
echo "changed=" . $changed . "\n";
<?php
function addOne(int $value): int {
    $value = $value + 1;
    return $value;
}

$number = ;
$changed = addOne($number);

echo "number=" . $number . "\n";
echo "changed=" . $changed . "\n";
value copy A parameter can change inside the function without changing the original variable.