![](/img/trans.png)
[英]Documentation: how do I document that a function can return more than one type of variable?
[英]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 »</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 »</p>
<div style="clear:both;"></div>
<hr/>
';
}
return $data;
如果你只需要輸出內容然后內implode
並echo
:
$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 »</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 »</p>
<div style="clear:both;"></div>
<hr/>
';
}
return($data_return);
}
希望這會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.