运算符是告诉PHP进行运算的标志符号。一般分为:算术运算符、赋值运算符、比较运算符、三元运算符、逻辑运算符、字符串连接运算符、错误控制运算符。
算术运算符:主要用于进行算术运算(+、-、*、/)
赋值运算符:
(1)“=”:把右边表达式的值赋给左边的运算数。它将右边表达式值复制一份,交给左边的运算数。换而言之,首先给左边的运算数申请了一块内存,然后把复制的值放到这个内存中。
(2)“&”:引用赋值,意味着两个变量都指向同一个数据。它将使两个变量共享一块内存,如果这个内存存储的数据变了,那么两个变量的值都会发生变化。
<?php
$a = "我在慕课网学习PHP!";
$b = $a;
$c = &$a;
$a = "我天天在慕课网学习PHP!";
echo $b."<br />";
echo $c."<br />";
?>
比较运算符:主要用于进行比较运算。
<?php
$a = 1;
$b = "1";
var_dump($a == $b);
echo "<br />";
var_dump($a === $b);
echo "<br />";
var_dump($a != $b);
echo "<br />";
var_dump($a <> $b);
echo "<br />";
var_dump($a !== $b);
echo "<br />";
var_dump($a > $b);
echo "<br />";
$c = 5;
var_dump($a<$b);
echo "<br />";
var_dump($a <= $b);
echo "<br />";
var_dump($a >= $c);
echo "<br />";
var_dump($a<= $b);
echo "<br />";
var_dump($b >= $c);
echo "<br />";
?>
三元运算符:( - ? '' : '' )三元运算符是一个比较运算符,对于表达式(expr1)?(expr2):(expr3),如果expr1的值为true,则此表达式的值为expr2,否则则为expr3。
<?php
$a = 78;//成绩
$b = $a >= 60 ? "及格" : "不及格";
echo $b;
?>
逻辑运算符:主要是进行逻辑运算,有:逻辑与、逻辑或、逻辑异或、逻辑非等。常用的如下图所示:
就像一杯水:
①:逻辑与:两个人都口渴要喝水,才可以打开杯子喝水;
②:逻辑或:有一个人渴了要喝水,就可以打开杯子喝水;
③:逻辑异或:有且只能有一个人口渴要喝水才能打开,要是三人行,两个人口渴要打开也不可以;
④:逻辑非:不口渴的人反对打开杯子,反对无效。
字符串连接运算符:将两个字符串进行连接。
(1)连接运算符(“.”):它返回将右参数附加到左参数后面所得的字符串。
(2)连接赋值运算符(“.=”):它将右边参数附加到左边的参数后。
错误控制运算符:将“@”放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉。如果激活了track_error(在php.ini中设置)特性,表达时所产生的任何错误信息都被存放在变量$php_errormsg中,此变量在每次出错时都会被覆盖,所以想用的话必须尽早检查。(注:错误控制前缀“@”不会屏蔽解析错误的信息,不能把它放在函数或类的定义之前,也不能用于条件结构,例如:if 和for each 等)。
小结:运算符和其他语言并无太大出入,最后的“字符串连接运算符”和“错误控制运算符”在其他语言中确实很少用到。在学习过程中,字符串链接运算符很容易掌握,但有点难以理解“错误运算符”的真正用途,是在测试环节中运用的么?变量每次出错时被覆盖,那还怎么修改bug呢?关于这一点,离真正掌握运用还是有点距离。