Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Передача переменной по ссылке


Автор: Rerecoder 14.3.2020, 13:21
На сервере у клиента PHP Version 5.4.45
Там живет древний скрипт, который нужно переделать, чтоб он работал на php7
Наткнулся там на такую конструкцию:

Код

 public static function addBanner(&$_APPDATA) {


Погуглив нашел что это передача переменной по ссылке, чтоб внутри ее можно было изменять и изменения эти сохранились в переменной снаружи функции.
https://www.php.net/manual/ru/language.references.pass.php

В этом мануале пишут что:
Начиная с PHP 5.4.0 передача переменной по ссылке стала невозможна, поэтому использование этого приема приведет к фатальной ошибке.

Но скрипт этот работает на 5.4.45
Проясните плиз этот момент, кто к теме.

Клиент говорит, что этот же скрипт вроде работать может и на 5.6
Может ли код с передачей параметров по ссылке работать на 5.6 теоретически?
Или если где то работает на 5.6 то значит там точно более новая версия скрипта?

Автор: ksnk 15.3.2020, 20:41
Не верю
http://phpfiddle.org/main/code/gtw3-i2s7
?
Переменная по ссылке уходит нормально, версия сейчас 7.1.15 

Автор: Rerecoder 21.3.2020, 14:28
Действительно, работает значит в мануале ошибка.

Еще в том же проекте мне встретилась конструкция внутри функций

global $_APPDATA;

Почитал описание, получается это почти то же самое, что доступ по ссылке.
Думал давным давно глобальные переменные запрещены в php, был очень удивлен.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)