Чтобы не забывать каждый раз писать & перед переменной, передавая ее функции, существует и другой, более привычный для программистов на Си++ синтаксис передачи по ссылке. А именно, можно символ & перенести прямо в заголовок функции, вот так (листинг 11.5):
Листинг 11.5. Передача параметров по ссылке (второй способ)
function Test(&$a)
{ echo "$a\n";
$a++;
echo "$a\n";
}
....
$num=10; // $num=10
Test($num); // à òåïåðü $num=11!
echo $num; // âûâîäèò 11!
Советую вам, если вы абсолютно точно уверены в необходимости передачи параметра именно по ссылке, использовать именно этот синтаксис, т. к. он значительно более "прозрачен"
и, к тому же, убережет вас от множества ошибок, связанных с пропуском & в программе.
Теперь, если вы в программе запустите функцию Test(), передав ей в параметрах не переменную (или ячейку массива), а непосредственное значение (например, константу 100), это у вас не получится: PHP выведет сообщение об ошибке. Таким образом, в качестве параметров, передаваемых по ссылке, можно задавать только переменные, но не непосредственные значения.