Как использовать ob_get_contents с функцией с аргументами - PullRequest
0 голосов
/ 26 июня 2019

У меня есть такая функция:

function show_aval($place) {
//some function
}

Я хочу перевести это в переменную, поэтому я делаю это:

ob_start();
show_aval(london);
$avalrooms = ob_get_contents();
ob_clean();

Это будет хорошо, если аргумент всегда "лондон", а это не так. Это может измениться на Йорк или Манчестер и т. Д. Мой вопрос заключается в том, что я могу сделать, чтобы указать аргумент через переменную следующим образом: $avalrooms["london"], $avalrooms["york"], $avalrooms["liverpool"] и т. Д., Не объявляя каждую переменную по одному по одному.

EDIT:

код ниже:

ob_start();
show_aval(london);
$show_aval = ob_get_contents();
ob_clean();

ob_start();
show_aval(york);
$show_aval2 = ob_get_contents();
ob_clean();

ob_start();
show_aval(liverpool);
$show_aval3 = ob_get_contents();
ob_clean();

будет работать, но это просто слишком много кода. Я попытался с foreach, но это, кажется, обнуляет ob_get_contents.

1 Ответ

1 голос
/ 26 июня 2019

Поместите города в массив, зациклите массив и используйте их в качестве аргумента функции и индекса массива.

$avalrooms = [];
$cities = ["london", "york", "liverpool"];
foreach ($cities as $city) {
    ob_start();
    show_aval($city);
    $avalrooms[$city] = ob_get_contents();
    ob_clean();
}
...