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? Или это настраивается?

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

Miguel ★★★★★
()

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

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

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

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

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

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

TaranSergey
() автор топика
Ответ на: комментарий от TaranSergey

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

...

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

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