амперсанд перед переменной

rudik

Developer
амперсанд перед переменной

function test_alter (&$item1, $key, $prefix) {
$item1 = "$prefix: $item1";
}

Что значит знак & перед переменной?
 

DiMA

php.spb.ru
Команда форума
то, что функция получит не копию передаваемой переменной, а ее оригинал. Т.е. при изменении переменной это отразится на области памяти места, откуда вызвали функцию.
 

rudik

Developer
Спасибо Дима, а не скажешь что значит знак & только в такой функции: $so = fsockopen("php.spb.ru", 80, &$errno, &$errstr, 30);
 

[VS]

Guest
Автор оригинала: rudik
Спасибо Дима, а не скажешь что значит знак & только в такой функции: $so = fsockopen("php.spb.ru", 80, &$errno, &$errstr, 30);
пережитки прошлого.
при вызовах функций & указывать не нужно.
 

DiMA

php.spb.ru
Команда форума
Автор оригинала: rudik
А что же она раньше обозначала?
повторяю

то, что функция получит не копию передаваемой переменной, а ее оригинал. Т.е. при изменении переменной это отразится на области памяти места, откуда вызвали функцию.

это можно писать как при вызове, так и при описании функции. Попробуй открыть РУССКИЙ МАНУАЛ и прочитать наконец хоть что-то.
 

[VS]

Guest
Автор оригинала: rudik
А что же она раньше обозначала?
амперсанд при вызове функции без амперсанда при определении - ничего не дает.
Dля передачи ссылки в совсем старых версиях нужно было и там и там писать амперсанд.
Потом стало нужно писать только при определении функции.
 
Сверху