算数运算符
$x = 10; $y = 6; echo '加法运算'; //换行 echo '<br>'; //换行 echo ($x + $y); //输出16 echo '<br>'; //换行 echo '减法'; //换行 echo '<br>'; //换行 echo ($x - $y); //输出4 echo '<br>'; //换行 echo '乘法'; //换行 echo '<br>'; //换行 echo ($x * $y); //输出60 echo '<br>'; //换行 echo '除法'; //换行 echo '<br>'; //换行 echo ($x / $y); //输出1.6666666666667 echo '<br>'; //换行 echo '模(除法的余数)'; //换行 echo '<br>'; //换行 echo ($x % $y); //输出4 echo '<br>'; //换行 echo '取反'; //换行 echo '<br>'; //换行 echo ~$x; echo '<br>'; //换行 echo '设置负数'; //换行 echo '<br>'; //换行 echo -$x; //整数之间的整除,参数也必须是整数,向下取整 var_dump(intdiv(10, 3));
赋值运算符号
$x = 10; echo $x; //输出10 echo '<br>'; //换行 echo '加法运算'; //换行 echo '<br>'; //换行 $y = 20; $y += 100; echo $y; //输出120 echo '<br>'; //换行 $y = 20; $y -= 100; echo $y; //输出-80 echo '<br>'; //换行 echo '减法运算'; //换行 echo '<br>'; //换行 $z = 50; $z -= 25; echo $z; //输出25 echo '<br>'; //换行 echo '乘运算'; //换行 echo '<br>'; //换行 $i = 5; $i *= 6; echo $i; //输出30 echo '<br>'; //换行 echo '除运算'; //换行 echo '<br>'; //换行 $j = 10; $j /= 5; echo $j; //输出2 echo '<br>'; //换行 echo '模(除法的余数)'; //换行 echo '<br>'; //换行 $k = 15; $k %= 4; echo $k; //输出3
递增/递减
echo '递增'; //换行 echo '<br>'; //换行 $x = 10; echo ++$x; //输出11 echo '<br>'; //换行 $y = 10; echo $y++; //输出10 echo '<br>'; //换行 echo $y; //输出11 echo '<br>'; //换行 echo '递减'; //换行 echo '<br>'; //换行 $z = 5; echo --$z; //输出4 echo '<br>'; //换行 $i = 5; echo $i--; //输出5 echo '<br>'; //换行 echo $i; //输出4
比较运算符
$x = 100; $y = "100"; $c = 100; $d = 10; echo "等于"; echo "<br>"; var_dump($x == $y); // 100 = 100 输出true echo "<br>"; /* * 输出错|是因为这是绝对等于不仅值要相同且数据类型也要相同 * 其中: * x为100为int * y为100但是为string * 所以就输出为var_dump($x === $y); 输出false * 但是c和x的值和类型为一样的就输出true **/ echo "绝对等于"; echo "<br>"; var_dump($x === $y); echo "<br>"; var_dump($x === $c); echo "<br>"; echo "不等于"; echo "<br>"; var_dump($x != $y); //100 = 100 输出false echo "<br>"; var_dump($x <> $y); //100 = 100 输出false|写法与!=一致 echo "<br>"; var_dump($x != $d); //100 = 10 输出true echo "<br>"; /* * 输出false|是因为这是绝对等于不仅值要相同且数据类型也要相同 * 其中: * x为100为int * y为100但是为string * 所以就输出为var_dump($x !== $y); 输出false * 但是c和x的值和类型为一样的就输出true **/ echo "绝对不等于"; echo "<br>"; var_dump($x !== $y); echo "<br>"; var_dump($x !== $c); echo "<br>"; /** * 字符串数字去减一个整数的数字会返回一个整数的数字 */ var_dump($y - $x); echo "<br>"; $h = 50; $a = 50; $b = 90; $g = 90; echo "大于"; echo "<br>"; var_dump($a > $b); // 50 > 90 输出为false echo "<br>"; echo "小于"; echo "<br>"; var_dump($a < $b); // 50 < 90 输出为true echo "<br>"; echo "小于等于"; echo "<br>"; var_dump($a <= $b); // 50 <且= 90 输出为true echo "<br>"; var_dump($a <= $h); // 50 <且= 50 输出为true echo "<br>"; echo "大于等于"; echo "<br>"; var_dump($a >= $b); // 50 >且= 90 输出为 false echo "<br>"; var_dump($g >= $b);// 90 >且= 90 输出为 true
逻辑运算符
这个就没什么必要写详细写法了
$h = 10; $a = 20; $c = 30; echo 'and运算符'; echo "<br>"; /** * 意思为$h > $a 和 $a < $h都为同样的布尔值false时则输出为false * 将$h > $a 和 $a < $h改为$h < $a and $a > $h则输出ture * 这是因为两个都输出为同样的布尔值则输出true * &&运算符和这个一样但是优先级高 */ var_dump($h < $a and $a > $h); echo "<br>"; echo 'or运算符'; echo "<br>"; /** * 意思为$h < $a 和 $a < $h其中一个为布尔值为true则输出为会输出为true * 将$h < $a改为$h > $a则会输出false * 这是因为同样的布尔值都是false所以输出为false * ||运算符和这个一样但是优先级高|且这个运算符号叫做【意思为且有一个为true】 */ var_dump($h > $a or $a < $h); echo "<br>"; echo 'xor运算符'; echo "<br>"; /** * 意思为$h < $a xor $a < $h xor $c < $a其中有且只有一个true则输出为true * 可以尝试将改$h > $a为$a < $h 则会输出为false * 这是因为有两个为ture是【违背了有且只有一个true】的原则所以输出为false */ var_dump($h < $a xor $a < $h xor $c < $a); echo "<br>"; echo "优先级"; $bool = true && false var_dump($bool)//输出为false $bool_1 = true and false var_dump($bool_1)//输出为true
阻断效果
/** * 输出为1因为使用了and优先级不高先进行赋值$result = 1 * 那么这时$result的值就是 1 * 1不仅仅是数字在bool中它代表了true|0不仅仅是数字在bool中它同时也代表了fasle * 那么可以看作为$result = $result or var_dump('执行这段语句'); * var_dump($result);输出则为1,为什么不输出为true?记住这句【1不仅仅是数字在bool中它代表了true】 * 代表了true并不是他就是bool类型了,他还是数字类型也就是int * 可以将1改为0试试输出且执行的则是var_dump('执行这段语句')这段|同时也会把数值输出执行出来 * * 加上括号之后先执行括号中的然后再赋值给$result最后再由var_dump来输出类型 * and和or为同样的道理 */ echo "<br>"; echo 'or运算符'; echo "<br>"; $result = 1 or var_dump('执行这段语句'); var_dump($result); echo "<br>"; $result = (1 or var_dump('执行这段语句')); var_dump($result); echo "<br>"; echo 'and运算符'; echo "<br>"; $result = 0 and var_dump('执行这段语句'); var_dump($result); echo "<br>"; $result = (0 and var_dump('执行这段语句')); var_dump($result); echo "<br>";
总结
1.var_dump(intdiv(10, 3));被除和除的数值都必须是整数
2.算数运算符和生活中的数学计算大差不差但是其中 = 不是等于的意思,在开始学习的时候就学到 = 为赋值
3.其中赋值运算符号可以想象为简写一个算数运算的过程$y += 100; | 其实就是$y = $y + 100; 其中$y已经被赋值为20了
4.赋值运算符号只能在=号之前
5.递增递减运算符中运算符号在值之[前]的意思为先[+1 or -1]然后再[+ or -] 值其次运算符号在值之[后]的意思为获取值再进行[+1 or -1]然后再[+ or -] 值但是算符号在值之[后]也就是$y++依旧输出10要是想获取到11就递增之后的值还得再次输出$y才能得到11的值|简单来说谁在前面先执行输出谁
6.&&和||的优先级比and和or要高先执行&&和||再去运算and和or
7,如果使用and时先执行$bool_1 = true这一段所以输出为true但是使用&&时先执行true && false时则输出为false
8,阻断效果中最难理解的就是1了|其实只要知道1可以作为bool的true使用而0可以作为bool的false使用即可