此问题已经在这里有了答案:
我有一个功能:
$array_numbers = [];
function uniqueNumber(& $array_numbers, $from, $to) {
$number = rand($from, $to);
if (!in_array($number, $array_numbers)) {
$array_numbers[] = $number;
} else {
uniqueNumber($array_numbers, $from, $to);
}
}
在参数功能中使用链接& $array_numbers
的原因是什么?
没有链接的传递数组$array_numbers
中的结果相同
如果使用链接,则数组将在外部函数之外更改
$array_numbers = [];
function uniqueNumber(&$array_numbers) {
$array_numbers[] = 1;
}
$ array_numbers将包含[1]
$array_numbers = [];
function uniqueNumber($array_numbers) {
$array_numbers[] = 1;
}
$ array_numbers将为空[]