Страница 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
Возвращается ссылка на переменную. Вызывать функцию надо тоже с амперсандом.