递归验证用户输入问题

design321 2013-04-28 05:50:21

function checkenter($canshu){
//验证输入
$obj = new base($canshu);
$re1 = $obj->list_tables($canshu);

//如果验证不通过
if($re1 === false){
echo "The '$canshu' was not found, Please input again \n";
//再次要求输入
$canagin = enter();
//递归验证
checkenter($canagin);
}
return $canshu;

}
$result = checkenter($canshu);
var_dump( $result);

请问,如果第一次输入成功,通过验证,那return $canshu;没问题;但请问在递归里,我怎么得到最后输入成功的值?谢谢了
...全文
92 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
design321 2013-05-01
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
虽然已经结贴了,但是错误的做法必须纠正 由于 http 协议的不可重入性,函数 checkenter 不可能出现递归
小女子不才,出现了新问题:http://bbs.csdn.net/topics/390444529
design321 2013-05-01
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
虽然已经结贴了,但是错误的做法必须纠正 由于 http 协议的不可重入性,函数 checkenter 不可能出现递归
版主大人,这个例子成功了,这是一个php_cli程序,谢谢您.
xuzuning 2013-04-29
  • 打赏
  • 举报
回复
虽然已经结贴了,但是错误的做法必须纠正 由于 http 协议的不可重入性,函数 checkenter 不可能出现递归
design321 2013-04-28
  • 打赏
  • 举报
回复
引用 1 楼 snmr_com 的回复:
不是 return checkenter($canagin); 么?
谢谢,是这样的, 当进入递归后checkenter($canagin) 就是函数 checkenter()里的$canshu,是这样理解吧?
ImN1 2013-04-28
  • 打赏
  • 举报
回复
不是 return checkenter($canagin); 么?

21,882

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧