# Тонкое место return в PHP

После того, как выполнится инструкция `return` - функция закончит свою работу. То есть: после выполнения return больше никакой код не выполнится.

Смотрите пример:

`<?php function func($num) { return $num * $num; echo '!'; // этот код никогда не выполнится } $res = func(3); ?>`

Это не значит, что в функции должен быть один `return`. Но выполнится только один из них.

В следующем примере в зависимости от значения параметра выполнится либо первый, либо второй `return`:

`<?php function func($num) { if ($num >= 0) { return '+'; } else { return '-'; } } echo func( 3); // выведет '+' echo func(-3); // выведет '-' ?>`

Что выведется на экран в результате выполнения следующего кода:

`<?php function func($num) { return $num; $res = $num * $num; return $res; } echo func(3); ?>`

Объясните почему.

Что выведет каждый из `echo` в результате выполнения следующего кода:

`<?php function func($num) { if ($num <= 0) { return abs($num); } else { return $num * $num; } } echo func(10); echo func(-5); ?>`

Объясните почему.

Что выведет каждый из `echo` в результате выполнения следующего кода:

`<?php function func($num) { if ($num <= 0) { return abs($num); } return $num * $num; } echo func(10); echo func(-5); ?>`

Объясните почему.

←→
↑