function blog_gettag(){
$terms = mysql_query('SELECT vid,name FROM term WHERE vid=2');
foreach ($terms as $term){
return $term->name;
}
}
当我调用函数echo blog_gettag()
时。只有一个结果。但当我改变功能retrun回声。然后blog_gettag()
。它打印好了。为什么呢?
答案 0 :(得分:4)
return
将停止继续运行该功能。它意味着你的功能已经完成了它必须做的事情。如果您希望它返回所有标签,您应该更改一些内容:
function blog_gettag(){
$aTerms = array();
$terms = mysql_query('SELECT vid,name FROM term WHERE vid=2');
foreach ($terms as $term){
$aTerms[] = $term->name ;
}
return $aTerms;
}
答案 1 :(得分:4)
那是因为你只返回一件物品。你找到第一个项目后就会立即返回。
解决方案是返回一个包含所有标记名称的数组,如下所示:
function blog_gettag(){
$terms = mysql_query('SELECT vid,name FROM term WHERE vid=2');
$items = array(); // Array holding return values
foreach ($terms as $term){
$items[] = $term->name;
}
return $items;
}
然后你可以迭代所有这些标签:
$tags = blog_gettag();
foreach($tags as $tag) {
echo $tag;
}
答案 2 :(得分:4)
return将结束循环,
答案 3 :(得分:1)
只有在需要返回某些内容时才会执行函数。返回本质上意味着“这是方法的输出”然后它停止做所有事情。
在您的示例中,您将返回第一行,然后该函数存在。通过生成数组来解决:
function blog_gettag(){
$terms = mysql_query('SELECT vid,name FROM term WHERE vid=2');
$names = array();
foreach ($terms as $term){
$names[] = $term->name;
}
return $names;
}
答案 4 :(得分:1)
一个函数只能在php中返回一个值。如果你想要完整的数组,那么首先将所有结果保存在一个数组&然后返回该数组
答案 5 :(得分:0)
当你return
函数产生对调用者的控制时,所以你将在循环的第一次迭代后退出循环。