问题描述
|
function blog_gettag(){
$terms = MysqL_query(\'SELECT vid,name FROM term WHERE vid=2\');
foreach ($terms as $term){
return $term->name;
}
}
当我调用函数“ 1”时。只有一个结果。但是当我更改功能时重新运行回显。然后显示ѭ2it。为什么?
解决方法
那是因为您只退回一项。找到第一个项目后,您将立即返回。
一种解决方案是返回具有所有标签名称的数组,如下所示:
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;
}
,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;
}
,返回将结束循环,
http://php.net/manual/zh/function.return.php
,函数仅在需要返回某些内容之前执行。 Return本质上表示“这是方法的输出”,然后它停止执行所有操作。
在您的示例中,您将返回第一行,然后该函数存在。通过产生数组的解决方法:
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;
}
,一个函数只能在php中返回一个值。如果要完整的数组,则首先将所有结果保存在数组中,然后返回该数组
,当您按“ 5”时,该函数将控制权交给调用者,因此您将在循环的第一次迭代后退出循环。