Что за предупреждение такое "Call-time pass-by-reference has been deprecated"??

WebPHPDev

Новичок
Что за предупреждение такое "Call-time pass-by-reference has been deprecated"??

Получаю предупреждение от РНР такого вида:
[01-Nov-2007 04:25:57] PHP Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /home/user/webserver/WWW/index.php on line 615
Там собственно действительно обращение через ссылки:
Код:
SomeMyFunc( &$firstStr, &$secondStr, &$thirdStr );
Не пойму.. а неужели так нельзя делать??
Почему нельзя передавать значения через ссылки? чтобы в них же и получить обработанный вариант.. Мне нужно сделать 3 вывода (result) функция же не может сразу три результата выдать :) поэтому я их через ссылки распределил..
 

Андрейка

Senior pomidor developer
Почему нельзя передавать значения через ссылки?
кто сказал, что нельзя?
 

jonjonson

Охренеть
WebPHPDev, суть дела вот в чём.
PHP:
// Какова разница между
SomeMyFunc( $firstStr, $secondStr, $thirdStr );
// и ?
SomeMyFunc( &$firstStr, &$secondStr, &$thirdStr );
// Результат для переменных не предсказуем. 
// Что бы его узнать, нужно лесть в функцию.
// ---------------------------------------------------------------
// Но вот заранее при объявлении 
// функции\методу можно указать.
function SomeMyFunc1( &$firstStr, &$secondStr, &$thirdStr )
{
    // ... реализация
}
// или
function SomeMyFunc2($firstStr, $secondStr, $thirdStr )
{
    // ... реализация
}
 

das6745

Новичок
Андрейка
не рекомендуется, это типа стрикт стандарт. да не рекомендуется передавать ссылку а не "по ссылке"

WebPHPDev
это ты указываеш что в function SomeMyFunc1( &$firstStr, параметры не передаются, а передается их адресс. тоесть если ты поменяеш значение параметра то и вне ф-ции он поменяется.

function SomeMyFunc2($firstStr...
в этом случае параметры закопируются, делай внутри с ними шо хош, снаружи ф-ции все останется прежде.

если ты при определении ф-ции указал что параметры передаются по ссылке то дальше то при использовании ненужно передавать ссылки, передавай параметрыа пхп сам разрулит =)
единственное что, должна передаватся переменная в которой хранится значение, передать просто, к примеру "че-нить" или значение низя. у него мол нету адресса еще. впринципе возврат результат ф-ция тоже может делать по ссылке =)

а вообще маны почитай, там есть примеры http://php.net/references
 

Андрейка

Senior pomidor developer
das6745
пасиб за разъяснение. сразу видно, что матерый сишник, явно на 1ом курсе с++ преподавали)
 

WebPHPDev

Новичок
jonjonson, das6745
Спасибо за объяснения. Подправил, теперь всё работает отлично!
 
Сверху