第九节:运算符-错误控制运算符-执行运算符-递增/递减运算符-逻辑运算符-字符串运算符-类型运算符-数组运算符
错误控制运算符
PHP支持一个错误运算运算符:@。当将其放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
@运算符只对表达式有些。对新手来说一个简单的规则就是:如果能从某处得到值,就能在它前面加上@运算符。例如,可以把它放在变量,函数和include()调用,常量,等等之前。不能把它放在函数和类的定义之前,也不能用于条件结果例如IF 和FORECAH等。
执行运算符
PHP支持一个执行运算符:反引号(``)。注意不是单引号!PHP将尝试将反引号的内容作为外壳命令来执行,并将其输出信息返回 (例如,可以赋给一个变量而不是简单地丢弃到标准输出)。使用反引号运算符“·”的效果与函数shell_exec()相同。
递增/递减运算符
PHP支持C风格的前/后递增与递减运算符。
递增/递减运算符不影响布尔值。
注意前加与后加的返回值 不同,其实就是一个带返回值的函数
++$a 前加 $a的值加一,返$a
$a++ 后加 返回$a 然后将$a值加一。
--$a 前减 $a值减一 然后返回$a
$a-- 返回$a 然后减一
注意递减NULL 的值没有效果,但是递增NULL等于1.
逻辑运算符
逻辑运算符中 比较重要的就是 and和&& or和|| 的区别 他们的区别就在于and和or是运算优先级很低的符号。主要是低于=号,这样使很多地方使用不当会造成错误。
还有一个是xor 异或符号,我用的较少,他的意思是两者一个为,其中有个一个true另一个必须是false,整体才返回true。
字符串运算符
字符串运算符有两个,一个是.另一个是.=,.就不用说了吧。.=就像+= -+ x+一样,等于$a=$a(各种符号)$b;
类型运算符 instanceof
1 <?php 2 //变量时此对象的实例 3 class myclass{}; 4 $a=new myclass; 5 var_dump($a instanceof myclass); 6 //用字符串表示 7 $b='myclass'; 8 var_dump($a instanceof $b); 9 //用对象表示 10 $a=new myclass(); 11 $b=new myclass(); 12 var_dump($a instanceof $b); 13 ?>
数组运算符
主要就是+号和array_merge的区别
+号运算符是把右边的数组元素(除去左边的数组元素相同的那些元素)附加到左边的数组后面,但是重复的键值不会被覆盖。
而 array_merge 右边会覆盖左边,如果所有的KEY都是整数讲进行从新索引。
1 <?php 2 $a=array(1=>1,3=>4,6=>4); 3 $b=array(1=>3,7=>6,4=>9); 4 var_dump(array_merge($a,$b)); 5 echo '<hr>'; 6 var_dump($a+$b); 7 ?>
输出结果:
array(6) { [0]=> int(1) [1]=> int(4) [2]=> int(4) [3]=> int(3) [4]=> int(6) [5]=> int(9) }
array(5) { [1]=> int(1) [3]=> int(4) [6]=> int(4) [7]=> int(6) [4]=> int(9) }