Страница 1 из 1
[php] &(амперсант) перед функцией
Добавлено: 20 ноя 2009, 17:05
itwork
Могли бы разъяснить что значит &(амперсант) перед функцией, для чего он?
Например, function &myFunc($arg, $arg2) {}
Re: [php] &(амперсант) перед функцией
Добавлено: 23 ноя 2009, 09:14
Хыиуду
Может быть, вы имели в виду "function myFunc(&$arg, &$arg2) {}"?
Амперсанд перед именем функции никогда не встречал, а вот амперсанд перед параметром - да, бывает. Разница в том, что переменные с амперсандом берутся по ссылке, а без него - по значению. Иначе говоря, изменение переменной с амперсандом внутри функции, повлияет на ее значение вне.
Код: Выделить всё
function fun1($arg) {$arg++; return arg;}
function fun2(&$arg) {$arg++; return arg;}
$arg=10;
echo fun1($arg);//Выведет 11
echo $arg; //Выведет 10 - изменение переменной внутри функции не повлияло на значение исходной переменной
echo $fun2($arg); //Выведет 11
echo $arg;//Выведет 11
Re: [php] &(амперсант) перед функцией
Добавлено: 28 ноя 2009, 13:56
itwork
нет иммено перед названием функции, например, в joomla cms 1.5
Re: [php] &(амперсант) перед функцией
Добавлено: 28 ноя 2009, 17:13
chur
Возвращается ссылка на переменную. Вызывать функцию надо тоже с амперсандом.