Я почти уверен, что это невозможно. Причина, по которой это не может работать, заключается в том, что «echo» или любой другой оператор, функция или присвоение переменной использует возвращаемое значение вызванной вами функции. Так что если у вас есть следующее:
echo function1();
Что происходит, так это то, что function1 выполняется, а возвращаемое значение передается в echo. Поэтому функция function1 не может знать, что ее возвращаемое значение будет «echo-ed», потому что к тому времени, когда это происходит, функция function1 () уже была вызвана и завершена.