За последние 24 часа нас посетил 16801 программист и 1644 робота. Сейчас ищут 899 программистов ...

передача по ссылке в PHP 4,5,6

Тема в разделе "PHP для новичков", создана пользователем AterCattus, 28 мар 2009.

  1. AterCattus

    AterCattus Активный пользователь

    С нами с:
    6 фев 2008
    Сообщения:
    80
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Столкнулся в работе с такой проблемой:
    Warning: Call-time pass-by-reference has been deprecated in XXXX on line YYYY

    Возникает при вызове мною определенных функций, не части PHP или модулей.

    И при поиске решения наткнулся на данную фразу:
    Call-time pass-by-reference has been deprecated in PHP 5 and will not even be available in PHP6.

    Очень хотелось-бы это обсудить. В шестерке все параметры кроме классов будут передаваться по значению?
     
  2. Frozen

    Frozen Активный пользователь

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
    не, все проще, видиш сивол -> & - забудь.. и все :)
     
  3. Нет. Нужно в определении функции указать, что этот параметр будет передаваться по ссылке. Ошибка возникает при передаче ссылки в параметре, который в определении указан, как обычная переменная.
     
  4. AterCattus

    AterCattus Активный пользователь

    С нами с:
    6 фев 2008
    Сообщения:
    80
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Т.е. вся проблема в том, что у меня в коде кроме обявления by-ref переменных в самой функции (что остается корректным в php6) еще указаны by-ref модификаторы при вызове? Просто в пятерке их указание не влияет на работу, если они указаны в описании функции. Я лично их пишу, что бы сразу было видно в коде, что тут передача по ссылке.
    В шестерке просто не нужно писать & при вызове? Остальная логика не меняется?
     
  5. AterCattus

    AterCattus Активный пользователь

    С нами с:
    6 фев 2008
    Сообщения:
    80
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    >>Этого достаточно для корректной передачи аргументов по ссылке.

    Достаточно, но не является запретным. По крайней мере раньше не являлось.