$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
var a = 8.5%3.2;
alert(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 = a = 20;
-=
*=
/=
.= 点等于,用于字符串连接,必须前后都是字符串才可以
$name = '张三';
$welcome = '欢迎';
$str = $welcome . $name;
echo $str;
点等与用于连接字符串:
image.png
条件运算:
>
<
>=
<=
==
===
全等(类型和值全部相等)
!=
不等
!==
不全等(类型和值,只要有一个不相等,就为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);
结构:
-
代码执行顺序: (一般来说)顺序结构 从上到下,从左到右
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,后面的代码永远不会执行
网友评论