美文网首页
PHP -- 运算和结构

PHP -- 运算和结构

作者: 潘肚饿兵哥哥 | 来源:发表于2019-06-29 18:19 被阅读0次

    \color{rgba(254, 67, 101, .8)}{小数取模:}
    \color{rgba(3, 101, 100, .8)}{小数会被先取整,再取模}

    $a = 8.5%3.2;
        echo $a;  // 2
    
    $a = 8.5%-3.2;
        echo $a; // 2
    
    $a = -8.5%3.2;
        echo $a; // -2
    
    $a = -8.5%-3.2;
        echo $a;  // -2
    取模:前面是正,结果就是正,前面是负,结果就是负
    8是被除数,  3是除数, 被除数影响结果的正负
    
    
    image.png

    \color{rgba(254, 67, 101, .8)}{在JS中,小数取模返回值是小数}

    var a = 8.5%3.2;
       alert(a);
    

    a++ 和 ++a :

    $a = 10;
        $b = $a++;//$b = $a; $a = $a + 1;
        echo $a,'|',$b;
    
        //值为:  11|10
    从左往右运算的,先有/$b = $a;后有的$a = $a + 1;
    
    
        $a = 10;
        $b = ++$a;//$a + 1 = $a; $b = $a;
        echo $a,'|',$b;
    
        //值为:  11|11
      
    

    赋值运算:

    =
    += a = 10 ;a = a + 10;a = 20;
    -=
    *=
    /=
    .= 点等于,用于字符串连接,必须前后都是字符串才可以

    $name = '张三';
        $welcome = '欢迎';
        $str =  $welcome . $name;
        echo $str;
    

    点等与用于连接字符串:


    image.png

    \color{rgba(254, 67, 101, .8)}{条件运算:}

    条件运算:
    >
    <
    >=
    <=
    ==
    === 全等(类型和值全部相等)
    != 不等
    !== 不全等(类型和值,只要有一个不相等,就为true)

    $a = 10;
        $b = '10';
        var_dump($a == $b);
        //var_dump();输出所有类型的值
    //两个等号的:会先自动转换成一样的类型,再比较是否相等
    返回值:  true
    
    
    $a = 10;
    $b = '10abc';
     var_dump($a === $b);
    返回值:  false
    这个函数会把前面的整数部分提取出来,后面无论是小数还是字符串,一概舍弃,只取整数
    $b = 'abc10';
     var_dump($b);
    返回值:  0
    如果没有取到数字,就会返回0
    JS里就会返回 NaN
    

    取整:

    
    $b = '10';
    $c = intval($b);
    var_dump($c);
    

    返回值;


    image.png

    取浮点数:

    
    $b = '10.25';
    $c = floatval($b);
    var_dump($c);
    
    image.png

    强制类型转换:

    $b = '10.25abc';
        $c = (int)$b;
        var_dump($c);
    
    image.png

    $settype();用于设置变量的类型。
    成功返回true,失败返回false

    $b = '10.2a';
        $c = settype($b, 'int');
    
        var_dump($c);
        var_dump($b);
    

    返回值:


    image.png

    逻辑运算:
    逻辑与: $$ and 都可以
    逻辑或: || or 都可以
    逻辑非: !
    逻辑亦或 ^ xor 都可以(相同为假,不同为真)

    逻辑与:

    $a = '无房';
        $b = '有车';
    
        if($a == '有房' && $b == '有车'){
            echo '可以结婚';
        }else{
            echo '不可以结婚';
        }
    
    image.png

    逻辑与是有短路问题的,只要有一个条件判断为false,就为false
    只要条件判断为false,就不再执行之后的条件判断,这就是短路。

    示例:

    $a = 5;
        $b = 4;
    
        if($a++ > 5 && $b++ > 3){
            echo '#####<br/>';
        }
        echo  $a,'|', $b;
        //$a++ > 5可以这样写  $c = $a++; $c > 5
        //$c =$a, $a= $a + 1 
        //此时$c = 5;  $a++ = 6  
        //因为先有$c =$a=5,后有$a= $a + 1 ,$a = 5 + 1 = 6所以第一个条件不满足
        //虽然第二个条件满足,但是and运算只要第一个条件为false,就不会再计算第二个条件,所以$b还是4,所以第一个条件#####不会输出,
        //第二个echo的结果:$a,'|', $b;结果是  6 | 4
    

    image.png

    逻辑或:
    有一个条件判断为true,结果就是true
    只要出现条件为true的表达式,就直接输出结果了,后面的表达式不执行,因为结果已经为true了

    $a = 5;
    $b = 4;
    
        if(++$a > 5 || $b++ > 3){
            echo '#####<br/>';
        }
        echo  $a,'|', $b;
        //结果还是6|4,因为与运算只要有一个条件为真,就直接输出了,
        //这里++$a = 6,就直接输出了,所以,第二个条件根本没有进行运算,还是4
        
    
    image.png

    三元(三目)运算
    就是简写的 if...else

    $d = a?b:c
    如果 a = true;$d =b
    如果 a =false;$d =c
    

    例子:

    $a = 5;
    $b = 4;
    echo  $a > $b ? 'a大于b' : 'a不大于b';
    
    image.png
    //取得三个变量的最大值
    //自己的写法:
        $a = 354;
        $b = 8;
        $c = 29;
        echo ($a > $b ? $a:$b )>($b > $c ? $b:$c )?($a > $c ?  $a:$c ):($b > $c ? $b:$c );
    
    视频的写法:
        $a = 3;
        $b = 81;
        $c = 29;
        echo $a>$b?($a>$c?$a:$c):($b>$c?$b:$c);
    

    结构:

    1. 代码执行顺序: (一般来说)顺序结构 从上到下,从左到右
      2.分支结构: if...else 、switch,所有的switch都能用if...else写,但是不是所有的if...else都能用switch写

      • 单分支
     if(表达式){
     code;
    }
    表达式不成立则不执行
    
    • 双分支
    if(表达式){
        code1;
    }else{
        code2;
    }
    表达式成立,执行code1,表达式不成立,则执行code2;
    
    • 多分支
    if(表达式){
        code1;
    }else if{
        code;
    }else{
        code2;
    }
    
    else  if 在JS中必须分开写,在php里,可以写成else  if ,也可以写成elseif,可以不分开写
    
    if(表达式){
        code1;
    }else if{
        code;
    }[
    else{
        code2;
    }
    ]
    中括号里装代码表示中括号里的代码可有可无,这是约定俗成的写法。
    

    示例:

    $age = 26;
        if($age >= 12 && $age <16){
            echo '门票60';
        }else if($age >= 16 && $age <18){
            echo '门票100';
        }else if($age >= 18){
            echo '门票130';
        }
    
    分支结构的判断条件要封闭性,否则,有可能后面的代码不执行,
    例如,第一个判断条件,如果只有$age >= 12 没有 $age <16的话
    一旦输入的数字大于等于12,后面的代码永远不会执行
    

    相关文章

      网友评论

          本文标题:PHP -- 运算和结构

          本文链接:https://www.haomeiwen.com/subject/ceaecctx.html