簡體   English   中英

如何返回多個值?

[英]How do I return more than one value?

我需要協助。 由於我構建的結構,我無法使用回聲。 我沒有時間解釋原因。 但我的問題是,有沒有辦法返回多個數據? 讓我們這樣說:

final public function getCamps()
        {
            $campaigns = mysql_query("SELECT * From cms_news WHERE campaign='1'");

            while($skriv = mysql_fetch_assoc($campaigns))
            {
            return
            '
            <hr/> 
            <div class="campaign_images"> 
            </div> 
            <div class="campaign_content"> 
            <b>'.$skriv['title'].'</b><br>
            '.$skriv['shortstory'].'
            </div> 
            <p class="gothere">Go there &raquo;</p> 
            <div style="clear:both;"></div> 
            <hr/> 

            ';
            }

        }

但問題是返回只會給我一個值然后停止腳本。 我該如何解決這個問題? 我聽說我應該返回一個數組或其他東西,但我該怎么做? 謝謝。 抱歉,我的英語順便說一下。

將數據添加到數組並返回該數組。

$data = array();

while($skriv = mysql_fetch_assoc($campaigns))
{
  $data[] =
  '
  <hr/> 
  <div class="campaign_images"> 
  </div> 
  <div class="campaign_content"> 
  <b>'.$skriv['title'].'</b><br>
  '.$skriv['shortstory'].'
  </div> 
  <p class="gothere">Go there &raquo;</p> 
  <div style="clear:both;"></div> 
  <hr/> 

  ';
}

return $data;

如果你只需要輸出內容然后內implodeecho

$data = $obj->getCamps();

echo implode($data);

雖然我個人不會在循環中添加HTML 我只是將行數據添加到數組並返回:

final public function getCamps()
{

  $data = array();

  $campaigns = mysql_query("SELECT * From cms_news WHERE campaign='1'");

  while($skriv = mysql_fetch_assoc($campaigns))
  {
    $data[] = $skriv;
  }

  return $data;

}

然后迭代返回的數組並添加HTML

<?php foreach ($obj->getCamps() as $camp) { ?>

  <hr>

  <div class="campaign_images"></div> 

  <div class="campaign_content">

    <b><?php echo $camp['title']; ?></b>

    <br>

    <?php echo $camp['shortstory']; ?>

  </div> 

  <p class="gothere">Go there &raquo;</p> 

  <div style="clear:both;"></div> 

  <hr> 

<?php } ?>

一旦return語句執行,控制就會離開函數的范圍。 你只能return一次。 看起來你想要做的是構建一個字符串並返回整個事物。 所以不是這樣的:

while(condition) {
    return value;
}

做這個:

result = '';
while(condition) {
    result .= value;
}
return result;

這是用於在函數內聚合結果的標准模式。

您可以輕松返回具有多個鍵/值對的數組。 您只需知道如何在接收端使用它。

return [
    'html' => '<hr/><div class="campaing_images>....</div>',
    'error' => false,
]

您也可以只做一個普通的數組索引版本

return [
    '<hr/><div class="campaing_images>....</div>',
    false
]

試試這個:

final public function getCamps()
    {
        $campaigns = mysql_query("SELECT * From cms_news WHERE campaign='1'");
        $data_return = "";  
        while($skriv = mysql_fetch_assoc($campaigns))
        {
        $data_return .=    //this returns multiple  values from your db
        '
        <hr/> 
        <div class="campaign_images"> 
        </div> 
        <div class="campaign_content"> 
        <b>'.$skriv['title'].'</b><br>
        '.$skriv['shortstory'].'
        </div> 
        <p class="gothere">Go there &raquo;</p> 
        <div style="clear:both;"></div> 
        <hr/> 

        ';
        }
     return($data_return);

    }

希望這會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM