Конструкция return require '/path/to/file.html'; работает
А при использовании return echo $data['html']; возникает ошибка
PHP Parse error: syntax error, unexpected 'echo' (T_ECHO)
Почему?
Функция echo() в php не имеет возвращаемого значения, а return ожидает получить параметр, который обозначает какое либо значение и void функция в этом месте указана быть не может. В отличии от него require может возвращать значение (согласно описанию конструкции include).
Чтобы получить в переменную вывод из require, используйте буфер php:
ob_start();
require '/path/to/file.html';
$output = ob_get_clean();
Хотя, по уже выбранному лучшему ответу, примерно понятно, что вам было нужно. Но, возможно, при "другой" реализации будет полезна лямбда с замыканием (не, помню, с каких версий это работает):
<?php
function test($data) {
return function($data) use ($data) {
echo $data['html'];
};
}
$data = ['html' => 'hello'];
$f = test($data);
$f();
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости