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 輸出

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM