@Evgenij_nechujveter

Почему не работает return?

Почему не работает return? На экран будет выведено 10, а не 20(как задумано.
function my_func ($a){
    return $a + 10;
}

$a = 10;

my_func($a);
echo $a;

И еще: можно ли решить эту задачу без использования return внутри функции?
  • Вопрос задан
  • 1141 просмотр
Пригласить эксперта
Ответы на вопрос 4
qonand
@qonand
Software Engineer
Почему не работает return? На экран будет выведено 10, а не 20(как задумано.

потому что Вы и не выводите результат функции, Вы выводите значение переменной $a, а результат выполнения можно вывести например так:
echo my_func($a);

И еще: можно ли решить эту задачу без использования return внутри функции?

можно если использовать указатели, но на Вашем примере смысла в этом мало
Ответ написан
Комментировать
@ig0r88
Нужно передавать аргумент по ссылке:

function my_func (&$a){
    $a += 10;
}

$a = 10;

my_func($a);
echo $a;
Ответ написан
Комментировать
Flashter
@Flashter
Учусь программировать
Почему не работает return? На экран будет выведено 10, а не 20(как задумано.

Потому что функция - это блок кода, который возвращает значение, в нашем случае:
return $a + 10;

Значит при вызове функции
my_func($a)
необходимо результат чему - то присваивать, например так:
$a = 10;
$result_sum = my_func($a);
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev
software engineer
1.
my_func($a) - вы просто вызвали функцию, в которую передали аргумент. Ее результат, который возвратится по return вы тут не используете, поэтому $a у вас не меняется.
Нужно
$a=my_func($a);

2. Не нужно называть переменные однобуквенно - будете сами путаться как только их будет в программе штук 10-20. Пишите так

function my_func ($arg) {
    return $arg + 10;
}
$myVariable = 10;
$result = my_func($myVariable);
echo $result;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы