Я думаю, что единственная причина, по которой это существует, - это возможность пропустить конечные параметры при вызове функции
function test(&$bar = 10)
{
echo " '$bar' ";
$bar = $bar*2;
echo " '$bar' ";
}
test($aaa); // prints '' '0' (NULL as string, NULL*2)
echo $aaa; // prints 0 ($aaa is set to NULL*2)
echo "<br>";
$bbb = 6;
test($bbb); // prints '6' '12' (6, 6*2)
echo $bbb; // prints 12 ($bbb is set to 6*2)
echo "<br>";
test(); // prints '10' '20'
// (uses the default value since the argument was skipped, so: 10, 10*2)
Итак, причина, по которой это существует, - это просто возможность иметь
$ bar установлен на некоторое значение по умолчанию внутри области функции
когда вы пропускаете ведущий параметр в вызове функции
Если это так, я согласен с вами, руководство должно быть более точным об этом