1,是针对数字类型(int,float)进行的运算;
2,取余运算符(%),只针对整数进行运算;
自增自减运算符:++ --
这是“单目”运算符。是针对一个数字进行的自加1或自减一运算。
“英文字母字符串”,也可以进行“自加运算”。
1,如果是独立语句中,前自增(++$i)和后自增($i++)结果是一样的!
2,如果自增运算在其他语句中,前自加是先将自身加1,然后进行其他运算,而后自加,是先进行其他运算,然后自加——可见,这种情况,影响的是“其他运算”,而该变量本身仍然是结构一样。
3,前自加效率略高于后自加——推荐在循环中使用前自加。
1,&&:只要有一个是false,结果就是false
2,||: 只要有一个是true,结果就是true
在一个逻辑与或逻辑或运算中,如果该运算符的前后都需要进行一定的“逻辑判断”(比如最常见的就是大小比较),则此时我们应该将这种逻辑判断的“简单情形”放在此逻辑运算符的前面(左边),这样就可以造成逻辑运算的短路效果,以达到提示效率的目的。
字符串运算符: .
=:
+= -= *= /= %=
数据1 ? 数据2 : 数据3
基础规定:
按位与:1 & 1==>>1 1 & 0==>>0 0 & 1==>>0 0 & 0==>>0
按位或:1 | 1==>>1 1 | 0==>>1 0 | 1==>>1 0 | 0==>>0
按位非:~1==>> 0 ~0 ==>> 1
按位异或:1 ^ 1==>>0 1 ^ 0==>>1 0 ^ 1==>>1 0 ^ 0==>>0
就是讲2个10进制整数的2进制数值形式的每一个对应位上的数字(此时只有1和0了)进行基本按位与运算之后所得到的结果。
原码:就是数学上的一个数字的二进制形式,并规定:
正数的第1位为0
负数的第1为为1
反码:
正数的反码是其本身;
负数的反码是这样:符号位不变,其余位取反。
补码:
正数的补码是其本身;
负数的补码是这样:符号位不变,其余位取反后加1(即反码加1)。
这里说的一组事物的开关状态,要理解为其实是一组数据的开关状态:即该组数据的每一个,都只有2个值,或2个状态,可以表示为“真假”,或1和0
做法(假设有5个事物/数据):
1,设定对应的5个常量D1, D2, D3, D4, D5,其值分别是1,2,4,8, 16
2,,定义一个变量$state,该变量就代表这5个事物/数据的任意可能组合。
3,则我们可以有如下3个任务(对应3种算法逻辑):
3.1:判断任意一个事物/数据的当前状态(n代表1-5中的其中一个):
if( ($state & Dn) > 0){开着}else{关着}
3.2:打开指定的任意一个事物/数据:
$state = $state | Dn; //此时对应的该事物/数据处于“开启”状态,而且不影响其他
3.3:打开指定的任意一个事物/数据:
$state = $state & (~Dn); //此时对应的该事物/数据处于“关闭”状态,而且不影响其他
+:合并2个数组而已,如果其中有重复的下标,则以前一个数组中的为准。
==:判断是否“模糊相等”,
array(1=>1, 2=>2 ) == array(2=>2, 1=>1); //true
===:判断是否“严格相等”;
array(1=>1, 2=>2 ) === array(2=>2, 1=>1); //false
错误控制运算符@:抑制一个表达式在运行时所产生的错误提示。
运算符的优先级 :
1,意识到运算符有优先级;
2,括号最优先,赋值通常是最“落后”。
3,如果不是和清晰,就尽量加上括号来明确界定其运算顺序。