Почему не работает return?
Почему не работает return? На экран будет выведено 10, а не 20(как задумано.
потому что Вы и не выводите результат функции, Вы выводите значение переменной $a, а результат выполнения можно вывести например так:echo my_func($a);И еще: можно ли решить эту задачу без использования return внутри функции? 
можно если использовать указатели, но на Вашем примере смысла в этом мало
Почему не работает return? На экран будет выведено 10, а не 20(как задумано.
Потому что функция - это блок кода, который возвращает значение, в нашем случае: return $a + 10;
Значит при вызове функции my_func($a) необходимо результат чему - то присваивать, например так: $a = 10;
$result_sum = my_func($a);