LINUX.ORG.RU

потеря передачи значения по ссылке


0

0

Обновил пхп до версии 5.2.4, перестали работать такие конструкции:
function func(&$x)
{
$var = 1;
}

func($var = 2); // в $var после завершения остаётся 2, раньше было 1
func($var); // в $var будет 1
Похоже php в первом случае игнорирует передачу по ссылке..
Кто не прав я или php? Или это настраивается?

Re: потеря передачи значения по ссылке

R.I.P.

anonymous ()

Re: потеря передачи значения по ссылке

PHP не прав по определению. Ты, вероятно, тоже (но тут под вопросом).

Miguel ★★★★★ ()

Re: потеря передачи значения по ссылке

> function func(&$x) { $var = 1; }

Посмотри внимательно на имена переменных ;)

А, вообще - есть такая фишка. ИМХО, это пример из категории "чему будет равно (a++ + a++)?".

Сам подумай, какая логика получается у выражения func($var = 2); когда var передаётся ссылкой. Передаётся она до присваивания или после? Если в стандарте такие неопределённости не оговорены, то пользоваться ими нельзя. Лично мне просто в голову бы не пришло так написать. Ибо результат логически непредсказуем :)

KRoN73 ★★★★★ ()
Ответ на: Re: потеря передачи значения по ссылке от KRoN73

Re: потеря передачи значения по ссылке

Виноват, пример кода писал вспешке, потому внутри функции написал не ту переменнную. Я бы сам такой код не писал, он не мой и со сменой php теперь не работает, а в проекте такого море..

TaranSergey ()
Ответ на: Re: потеря передачи значения по ссылке от TaranSergey

Re: потеря передачи значения по ссылке

Значит, в другой раз выбирайте других программистов или продукт :)

...

Вообще, непонятно, что нужно курить, чтобы писать - так :D

KRoN73 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.