Функция PHP: возврат данных из цикла

Вопрос:

Я хочу использовать функцию для загрузки моей ленты новостей на моем веб-сайте динамически из моей базы данных, я создал функцию с переменными для типа сообщения, от конкретного пользователя и т.д., И я хочу запустить цикл while() для возврата каждый пост, как обычно, как это можно сделать в рамках функции? Я попытался запустить цикл и настроить содержимое, которое я хочу отобразить, в одной переменной, которую он затем возвращает в этом цикле, я надеялся, что он будет каждый раз запускать возврат в цикле, и функция будет эхо каждого из них поочередно, когда я думаю об этом логически, этого, очевидно, не будет, так может кто-нибудь объяснить, как это будет достигнуто?

Пример (аналогичный) код:

Доступ к функции:

<?php echo getNews(); ?>

Функция:

<?php function getNews(){
//query stuff
while($row = mysql_fetch_array($result)){
$return = "Looped data";
return $return;
}
?>

Лучший ответ:

Выполнение функции остановки возврата. Вы можете попробовать что-то вроде

function getNews(){
    $html = null;
    //query stuff
    while($row = mysql_fetch_array($result)){
         $return = "Looped data";
         $html .= $return;
    }
    return $html;
}

Ответ №1

Возврат следует использовать на стороне циклы

Попробуйте эту функцию

<?php function getNews()
{
$return =array()
while($row = mysql_fetch_array($result))
{
$return[] = "Looped data";

}
return $return;
}
?>

Ответ №2

При первом return функция ломается, и поэтому выбирается только первая строка. Вы можете временно сохранить данные в массиве и вернуть его. При echo вызове вы можете implode() его.

function getNews(){
//query stuff
$result = array();
while($row = mysql_fetch_array($result)){
$result[] = "looped data";
}
return $result;
}

echo implode("<br>\n", getNews());

Получение возвращаемого массива может быть более полезным в будущем. Также, по моему мнению, имя функции более наглядное. Он не говорит concat/etc, только получите.

Ответ №3

Вы не можете использовать функцию для возврата с каждым циклом. В качестве альтернативы вы можете сохранить результат, созданный в цикле, переменной или массиву и вернуть переменную/массив. Пример использования переменной:

<?php function getNews() {
//query stuff
$return = "";
while($row = mysql_fetch_array($result)) {
$return .= "Looped data";
}
return $return;
}
?>

Если ваша цель – это просто результат echo чем это делается в самой функции без использования переменной. Массив будет лучше, если вы хотите обработать что-то с результатом.

Оцените статью
TechArks.Ru
Добавить комментарий