switch case return return 返回不了值的原因
我在页面写了一个ajax ,但是控制器 是 用switch case break 控制的控制器 ,
我想 在case login 方法里 直接 return , 但是不好使 始终是 null ,
switch($act) {
// 登录方法
case 'login':
$result = json_encode(array(1,'登录成功'));
return $result;
}
ajax success 始终是收不到值的 (如上代码);
要是 在一个控制器中 是可以收到值的 ( 如下代码)
function login (){
$result = '';
switch($act) {
// 登录方法
case 'login':
$result = json_encode(array(1,'登录成功'));
//返回值不写在这
//return $result;
}
//在这是可以获取到的
return $result;
}
刚才刚知道 怎么 实现 不用 return 正常用 break 用echo json 值 ajax 即可获取到(如下代码)
case 'login_personal_center':
$login_type = ForceStringFrom('login_type');
if($login_type == 1){
$mobile_phone = ForceStringFrom('mobile_phone');
#传输过程是加密的 此时应该解密 账号与密码
$password=js_decrypt_openssl(ForceStringFrom('password'));
$reg_status = $cls_user->login($mobile_phone, $password);
$oper_desc = '密码登录';
}elseif($login_type == 2){
$mobile_phone = ForceStringFrom('mobile_phone');
$sms_code = ForceStringFrom('sms_code');
$reg_status = $cls_user->code_login($mobile_phone, $sms_code);
$oper_desc = '验证码登录';
}else{
sys_msg_json(0, '登录方式有误');
}
wap_get_ntt_user_info($mobile_phone);
if($reg_status['status'] != 1) {
sys_msg_json(0, $reg_status['msg']);
}
$_SESSION['fugu_openid'] = '';
$session_id = session_id();
setcookie($GLOBALS['MAIN_KID'], $session_id, time()+86400 * 600,'/',$GLOBALS['MAIN_DOMAIN']);
$refer_url = html_entity_decode($_SESSION['refer_url']);
$nick_name = $GLOBALS['DB']->get_var("SELECT `nick_name` FROM `member_base` WHERE `member_id`='{$reg_status['uid']}' ");
// 记录登陆日志
$oper_date = date('Y-m-d');
$oper_time = date('Y-m-d H:i:s');
$oper_ip = GetIP();
// $login_type 操作类型 1:密码登录,2:验证码登录,3:修改密码
$sql = "INSERT INTO `wap_user_login_log`
SET `member_id` = '{$reg_status['uid']}',
`mphone` = '{$mobile_phone}',
`oper_type` = '{$login_type}',
`oper_desc` = '{$oper_desc}',
`oper_date` = '{$oper_date}',
`oper_time` = '{$oper_time}',
`oper_ip` = '{$oper_ip}'
";
$GLOBALS['DB']->query($sql);
//同步wap端用户信息给cap
sync_wap_user($reg_status['uid'],1,2,$mobile_phone);
#在这里 直接输出就行
echo json_encode(array("error" => 1 , "data" => $refer_url , "mess" => $nick_name , "unionid" => get_unionid_for_sensor($reg_status['uid']) , "sensor_data" => get_user_sensor_info($reg_status['uid'])));
exit;
//sys_msg_json(1, $_SESSION['refer_url'],$nick_name);
break;
个人总结:1.break 和return 都是 结束 switch 流程 但是 return 是直接结束 不继续往下执行 , break 是会继续往下执行,
2.return 在 switch 里写是没有返回值的,在switch 外 return 是有返回值的,如果有不对请给出指正,谢谢!
3.不用return 用echo 输出
switch case return return 返回不了值的原因的更多相关文章
- C#--Switch Case语句的返回
C#中switch case语句的返回不只是用break关键字,break语句是用来阻止贯穿的最常见的方式.也可以用其他语句来替代它.如下面代码所示 static int Main(string[] ...
- js switch case 判断的是绝对相对===,值和类型都要相等
js switch case 判断的是绝对相对===,值和类型都要相等
- C# 利用键值对取代Switch...Case语句
swich....case 条件分支多了之后,会严重的破坏程序的美观性. 比如这个 上述代码是用于两个进程之间通信的代码,由于通信的枚举特别的多,所以case的分支特别的多.导致了代码的可读性,可维护 ...
- jquery中ajax用return来返回值无效
jquery中,ajax返回值,有三种写法,只有其中一种是成功的 /** * async:false,同步调用 * 返回1:2 * 失败 * 分析:ajax内部是一个或多个定义的函数,ajax中ret ...
- python- 如何return返回多个值
函数的return 语句只能返回一个值,可以是任何类型. 因此,我们可以“返回一个 tuple类型,来间接达到返回多个值 ”. 例: x 除以 y 的余数与商的函数 def F1 ( x, ...
- return 的返回值与结束功能
前言:大家好~我是阿飞~在js中return是很重要的基础.一定要彻底掌握理解它哦.否则js学习到中后期很容易懵逼的+_+ 什么是return? 1.在js中return是一个表达式语句,如果后面什么 ...
- defer、return、返回值,这三者的执行逻辑
defer.return.返回值,这三者的执行逻辑是: return 最先执行,return 负责将结果写入返回值中:接着defer执行,可能修改返回值:最后函数携带当前返回值退出.
- go中defer的理解--defer、return、返回值之间执行顺序
defer可以读取有名返回值 func c() (i int) { defer func() { i++ }() return 1 } 输出结果是2. 在开头的时候,我们知道defer是在return ...
- python return 返回多个值
python return 返回多个值,实际返回的是一个tuple: #!/usr/bin/env python # -*- coding: utf-8 -*- def rt(): return 1, ...
- Golang中defer、return、返回值之间执行顺序的坑
原文链接:https://studygolang.com/articles/4809 Go语言中延迟函数defer充当着 cry...catch 的重任,使用起来也非常简便,然而在实际应用中,很多go ...
随机推荐
- FTP替代传输方案的优异性体现在哪些方面?
多年来,FTP一直是最常见的交换文件的方式,FTP-FTPS-SFTP似乎是FTP的不断迭代更新,但是究竟是技术更新导致FTP过时?还是它真的已经满足不了企业的需求了? 之前,大家选择FTP往往是因为 ...
- Oracle dump文件的一些经验
dump文件对于DBA而言再平常不过了.不过因为dump文件是二进制文件,我们平时使用中不太关注.再导入dump文件时有很多细节和技巧是值得注意的. 1.查看dump文件的一些基本信息 strings ...
- DHCP中继(cisco)
DHCP中继(cisco) 要求:PC0.PC1和PC2的IP地址从DHCP-server里获取,并ping通PC3 IP地址规划表: 设备 接口 IP地址 Multilayer Switch0 Fa ...
- Swift中 堆(heap)和栈(stack)的区别
1.内存空间分为堆空间和栈空间 2.堆->引用类型(对象.函数.闭包) 栈->值类型(结构体.枚举.元组) 3.值类型赋值->深拷贝 引用类型赋值->浅拷贝 let a = ...
- feign的工作原理
1.开发微服务时,我们会在微服务的主程序入口添加EnableFignClient注解开启对Feign Client扫描加载处理,根据FignClient接口规范,定义接口并加上FignClient注解 ...
- B. Going to the Cinema
https://codeforces.com/contest/1782/problem/B 题目大意就是给定n个人,每个人有一个除自己之外的最少陪同人数,选一部分人去电影院,要求去的人人数大于等于去的 ...
- UF_OBJ_delete_array_of_objects函数vector转数组用法
1 UF_initialize(); 2 std::vector<tag_t>tool_tag; 3 tag_t ObjectTag = NULL_TAG; 4 int Type, ...
- 波利亚(George Pólya)的一些链接
忽然决定还是要写个博客. 第一篇献给波利亚. 他最有名的应该是<怎样解题>(How to solve it)这本书了.我认为只要读了前面几页就能提高普通人解决问题的能力,真的应该列为中学必 ...
- 题目集4~6的总结性Blog
题目集4~6的总结性Blog (1)前言 在这三次作业中,主要考察了正则表达式以及类间的关系.在这三次作业中,相比之下,第四次以及第五次作业的难度明显高于第六次作业,题量与难度相较于以往的作业也有明显 ...
- Luogu P2375 [NOI2014 D2]动物园 kmp
P2375 动物园 题目描述 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物 ...