美文网首页
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