继承我的职责:
function get_r($groupid) {
if (!empty($groupid)) {
$groupid = explode(",", $groupid);
$rto = array();
$x=0;
while (count($groupid,$ustaffid) > $x) {
$q = mysql_query("SELECT * FROM groups WHERE id='$groupid[$x]'");
while ($get = mysql_fetch_assoc($q)){
$rto[] = $get['groupname'];
}
$x++;
}
$q = mysql_query("SELECT * FROM groups WHERE ustaffid='$ustaffid'");
$numofgroups = mysql_num_rows($q);
if ($numofgroups == count($groupid) && count($groupid) > 1) {
$rto = "All of my groups";
} else {
$rto = implode(", ",$rto);
return $rto;
}
}
}
当我调用函数时我正在使用它:
get_r($groupid);
我要做的是从我的函数中获取变量$ rto,我已经为$ groupid变量提供了函数。 $ rto回来了。
感谢您的帮助!
答案 0 :(得分:1)
你的功能中有2个退出点:
if ($numofgroups == count($groupid) && count($groupid) > 1) {
$rto = "All of my groups";
} else {
$rto = implode(", ",$rto);
return $rto; <---- here
}
} <--- here (end of the function)
只有当if子句的计算结果为FALSE时才会返回$ rto。否则执行会从函数的底部掉出来而不会返回任何内容。
在此处添加其他回报:
if ($numofgroups == count($groupid) && count($groupid) > 1) {
$rto = "All of my groups";
return $rot; <---
或者只是将另一个回调调用移到函数的底部,所以无论if()结果如何,它都会返回$ rto。
if (...) {
...
} else {
...
}
return $rto;
答案 1 :(得分:0)
$foo=get_r($groupid);
echo $foo;
答案 2 :(得分:0)
返回内容的唯一时间是以下行失败时:
if ($numofgroups == count($groupid) && count($groupid) > 1) {
因此,如果你匹配所有的群组,基本上你不会得到任何结果。您应该将return
替换为函数的最后一行以避免这种情况。
答案 3 :(得分:0)
一旦函数完成,返回的变量就会超出范围。 这样做
$rto = get_r($groupid);
$ rto被分配了返回值。
此外,如果if块为true
,则不会返回值。
if ($numofgroups == count($groupid) && count($groupid) > 1) {
$rto = "All of my groups";
return $rto; //********** This <<
} else {
$rto = implode(", ",$rto);
return $rto;}