|
|
|
| Хочется понять четко.
Вот это передача по ссылке. Я правильно понимаю, что значение переменной при таком методе отражается как в зеркале? Если нет, сразу скажите!
<?php
function foo(&$var)
{
$var++;
}
$a=5;
foo($a);
// $a здесь равно 6
?>
|
Но почему когда возвращаешь то такой эффект не получаем
function foo($var)
{
$var++;
return($var);
}
$a=5;
foo($a);
echo $a; //а здесь равно 5, почему?
?>
|
И еще вопрос, в какое именно место return возвращает переменную? Я только читал что якобы возвращает в функцию, но куда именно? Может не быть мне программистом? | |
|
|
|
|
|
|
|
для: Sarat
(04.11.2014 в 09:34)
| | Не отражается как в зеркале, а и есть "является ссылкой на...". То есть &$var ссылается на $a и $var++ это равноценно $a++.
Поэтому и возвращать return($var) не имеет смысла.
Возврат происходит не в какое-то место, а в точку вызова, и возвращаемый результат можно присвоить переменной, выражению и т.п. | |
|
|
|
|
|
|
|
для: Sarat
(04.11.2014 в 09:34)
| | А вот еще вопросик.
<?php
function translate($red, $green)
{
$blue = 'голубой';
return $blue; return $red; return $green;
}
$red = 'красный';
$green = 'зеленый';
$trans = translate($red, $green);
echo $trans;
?>
|
Почему выводит "голубой", но не выводит "зеленый" и "красный"? Ведь я все три возвращаю! | |
|
|
|
|
|
|
|
для: Sarat
(05.11.2014 в 13:41)
| | return $blue; - это возврат из функции, а return $red; return $green; - хоть целую эпопею пишите, это уже мусор, кто эти возвраты выполнять должен? | |
|
|
|
|
|
|
|
для: Sarat
(04.11.2014 в 09:34)
| | . | |
|
|
|