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

  • Автор темы Автор темы rudik
  • Дата начала Дата начала

rudik

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

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

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

пережитки прошлого.
при вызовах функций & указывать не нужно.
 
Автор оригинала: rudik
А что же она раньше обозначала?

повторяю

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

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

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