10
回答
如图,if else语句不让他往下执行,怎么写?
注册华为云得mate10,2.9折抢先购!>>>   
PHP
举报
xiongphp
发帖于2年前 10回/1K+阅
共有10个答案 最后回答: 2年前
对 echo "<script>alert('')</script>"这种写法持鄙夷眼光
--- 共有 4 条评论 ---
梅开源事实上很多时候这是最快打完收工的方式。一波流完成从后端到前端输出然后下班。这段代码不但容易看懂容易维护。 2年前 回复
彩虹糖tang好吧,把基础学完了赶紧学一个mvc的框架,新手建议学TP,但是工作别用它,至于为啥,你以后会懂的 2年前 回复
xiongphp泪如雨下,我这才开始学习就被鄙视了! 2年前 回复
xiongphp为毛?新手来的! 2年前 回复
try { throw new Exception($error);  } catch (Exception $e) { return $e -> getMessage();}
--- 共有 2 条评论 ---
BG5TWC回复 @eechen : 你只看到了托管层面,没有看到应用层面,假如你一个数据库连接异常了,你不抛Exception而是if else判断吗?可读性呢? 2年前 回复
eechenJava不捕获异常就等着崩溃退出,Java执行System.exit(0)也会导致JVM退出.但PHP可就不一样了,exit()只会退出脚本的执行,而不会退出PHP-FPM和Apache这些服务进程,所以说异常这东西对PHP来说根本不是必需的东西. 2年前 回复
建议提问应该贴代码文本,而不是代码截图.

全局作用域里直接 exit() 退出即可.
比如:PHP页面控制器里用if/exit处理各种前端JS发出的"事件/操作/请求"
JS是前端,PHP是后端,后端PHP要获取前端JS的变量,那前端JS可以通过AJAX传输数据给后端PHP. 比如登录页面login.php:
/login.php              显示登录界面(默认)
/login.php?action=login 处理登录事件(表单)
<?php
if (!defined('APP_ROOT')) define('APP_ROOT', './');
require APP_ROOT.'include/common.php'; // 加载functions.php,验证cookie等
//后端PHP使用if处理各种前端JS发出的"事件/操作/请求",处理完成exit退出
if(isset($_GET['action']) && $_GET['action']==='login') {
    if(isset($_POST['name'])
    && isset($_POST['pass'])
    && $_POST['name']==='ele'
    && $_POST['pass']===123) {
        $ret['num'] = 0;
        $ret['msg'] = '登录成功';
        echo json_encode($ret);
        exit();    
    } else {
        $ret['num'] = 1;
        $ret['msg'] = '登录失败';
        echo json_encode($ret);
        exit();    
    }
    exit();
}
?>

<?php
//下面的 "header.php + 登录表单 + footer.php" 
//可以考虑写一个render函数加载,从而分离界面和上面的逻辑
require 'header.php';
?>

<?php
//下面显示登录表单(PHP+HTML+AJAX)
?>
<script src="<?php echo $app['theme_dir']; ?>/js/jquery.js"></script>
<script>
//给登录按钮绑定点击事件
$('.con').on('click', '.login', function(){
    $(this).text('正在登录');
    var context = this;
    $.ajax({
        url: 'login.php?action=login',
        type: 'POST',
        //这里就是JS传输给PHP的变量,可以通过DOM获取
        data: 'name='+$('.name').val()+'&pass='+$('.pass').val(),
        success: function(data){
            var obj = $.parseJSON(data);
            console.log(obj);
            //JS根据PHP返回值进行相应操作
            if(obj.num==0) {
                $(context).text(obj.msg);
                setTimeout(function(){
                    //1秒后跳转到首页
                    window.location.href = '/';
                }, 1000);
            } else {
                $(context).text(obj.msg);
                setTimeout(function(){
                    $(context).text('登录');
                }, 1000);
            }
        }
    });
});
</script>

<?php
require 'footer.php';
?>




--- 共有 2 条评论 ---
eechen回复 @BG5TWC : 呵呵,JAVAer你好,JAVAer再见. 2年前 回复
BG5TWCexit之后,后面的逻辑怎么办?后面正等着记日志呢,你给人家退出了 2年前 回复

使用try catch 可以解决你的问题 另外 还有一种奇技淫巧 但是不推荐 例如 


<?php
do{
 if($xxx){
  break;
 }
}while(false);



--- 共有 2 条评论 ---
BG5TWC回复 @此用户已关机 : 这个写法比较蛋疼,一般用在c这种没有异常处理的语言里,既然有异常处理,直接使用异常处理方法即可,用多了你会发现,异常处理方法 可读性更好,而且可以实现更多功能 2年前 回复
此用户已关机哈,这种方式我经常用,很直观 2年前 回复
顶部