如下,请知道的高手指点指点这些程序错在哪里吗?

比如下面的php程序:
在switch($state)函数里面,当$state="开启"的时候就调用函数aa($name ),
这时赋值 '喜洋洋'到函数aa($name )里面 就是 aa( '喜洋洋');
但是运行程序时,系统提示“ arr”没有定义!!
但是在 函数aa()已经用了 return $arr 这个返回$arr 了呀?
另外在函数aa()如果用print_r($arr) 也可以正常打印出$arr 。
但是为什么在 switch()里面调用 函数aa()的时候,$arr反而变为未定义呢?
<?php
function aa($name ){
$sql="SELECT * FROM `biao` where username=$name order by id desc";
$res=mysql_query($sql);

$arr=array();
while($row=mysql_fetch_assoc($res))
{
$arr[]=$row;

}
// print_r($arr);
return $arr;
}

switch($state){

default:
echo "你好!";

case "开启" :

aa( '喜洋洋');

break;

}
?>

哆啦的时光机
浏览 143回答 1
1回答

慕码人8056858

<?phpfunction&nbsp;aa($name&nbsp;){&nbsp;&nbsp;&nbsp;&nbsp;$sql="SELECT&nbsp;*&nbsp;FROM&nbsp;&nbsp;`biao`&nbsp;&nbsp;where&nbsp;&nbsp;username=$name&nbsp;&nbsp;&nbsp;order&nbsp;by&nbsp;id&nbsp;desc";&nbsp;&nbsp;&nbsp;&nbsp;$res=mysql_query($sql);&nbsp;&nbsp;&nbsp;&nbsp;$arr=array();&nbsp;&nbsp;&nbsp;&nbsp;while($row=mysql_fetch_assoc($res)){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$arr[]=$row;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;print_r($arr);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$arr;}switch($state){&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"开启"&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;$res=aa(&nbsp;'喜洋洋');&nbsp;&nbsp;&nbsp;&nbsp;print_r($res);&nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;&nbsp;&nbsp;&nbsp;default:&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;"你好!";&nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;&nbsp;}?>
打开App,查看更多内容
随时随地看视频慕课网APP