Столкнулся с одной проблемой, на первый взгляд все не просто. Предлагаю два есть две вариации вопроса
Первая из них изолированна от остального, но отражает всю суть того, что нужно получить в конечном итоге:
function func() {
echo '20';
};
func();
Нужно сохранить то, что выводиться с помощью echo в переменную. При этом нельзя менять саму функцию, а так же нужно удалить вывод на страницу от самого echo, т.е. в итоге у нас в переменной должно находиться число 20, а на страницу ничего не должно выводиться.
Далее вторая вариация вопроса и зачем это все вообще нужно.
Есть плагин для WordPress - Advanced Custom Fields
Есть допустим три страницы, на каждой из них нужно выводить разные посты, при этом эти страницы пользователь сам может создавать. Я придумал такую схему:
Таким образом юзер может создавать страницу и генерировать на ней новые посты.
Но беда в том, что плагин не возвращает значение, которое было введено юзером в поле, а просто выводит через echo под капотом как я понял. Моих познаний в PHP не достаточно чтобы исправлять что-то под капотом. Есть какие-нибудь варианты по поводу решения?
Для ваших целей надо использовать буферизацию вывода, пример:
<?php
ob_start();
echo "Привет ";
$out1 = ob_get_contents();
echo "Мир";
$out2 = ob_get_contents();
ob_end_clean();
var_dump($out1, $out2);
Все что между ob_start(); и ob_end_clean(); не выводится на экран а перехватить можно так $out = ob_get_contents();
Подробнее ob_get_contents()
Подробнее Функции контроля вывода
Продвижение своими сайтами как стратегия роста и независимости