关于php if(){}和if()的区别

今天学习PHP的时候遇到这么问题。

    function filter($fun){
                for($i=0; $i<=100; $i++){
                       if(call_user_func_array($fun, array($i)))
                            continue;
                            echo $i."<br/>";   

                }
        }

        //求被三整除
        function one($num){
                return $num % 3 ==0;        
        }
        //翻转字符串
        function two($num){
                return $num == strrev($num);        
        }

        filter("one");
        echo "<br/>";
        filter('two');

显示结果

    function filter($fun){
                for($i=0; $i<=100; $i++){
                       if(call_user_func_array($fun, array($i))){
                            continue;
                            echo $i."<br/>";   
                       }
                }
        }

        //求被三整除
        function one($num){
                return $num % 3 ==0;        
        }
        //翻转字符串
        function two($num){
                return $num == strrev($num);        
        }

        filter("one");
        echo "<br/>";
        filter('two');

不显示结果。以上两端代码不是同一个意思吗?

阅读 7.1k
4 个回答
    for($i=0; $i<=100; $i++){
                       if(call_user_func_array($fun, array($i)))
                            continue;
                            echo $i."<br/>";   

                }

等价于

    for($i=0; $i<=100; $i++){
                       if(call_user_func_array($fun, array($i))){
                            continue;
                       }
                       echo $i."<br/>";   
                }

不管你if是不是真,都会执行,php不是python哦。不是说缩进就是一个语句块

php的if和C的if一样。

不加大括号就到分号,加了大括号就是大括号内的东西。

for($i=0; $i<=100; $i++){
                       if(call_user_func_array($fun, array($i))){
                            continue;
                            echo $i."<br/>";   
                       }
                }

这段程序是错的,因为echo $i."<br/>";永远不会被执行

if(true){}:

phpif(true){
    //这个花括号里的代码都会执行
}

if(true):

phpif (true) echo(233);//只有这个echo(233);才是属于if判断
echo time();

区别就是if(true)只有后面一句且必须有一句是条件为真的执行代码,而if(true){}的花括号里的代码都是条件成立的执行代码,且可为空

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题