1、数学运算符: +(正号)、-(负号)、*(乘号)、/(除号)、%(取余)、+(加)、-(减);
2、字符运算符:.
3、赋值运算符: =、+=、-=、*=、/=、%=、.=
4、比较运算符: >、>=、、<>、!=、<、<=、=(全等)、!==(不全等)
5、自增/自减运算符: $i++、$i–、++$i、–$i;
后缀形式:先使用,后加减;前缀形式:先加减,后使用;
说明:自增/自减不影响布尔型;
//自增/自减运算符(increment)
//后缀形式
$i = 5;
echo $i++, '
'; //输出5,因为先使用,后加减;
echo $i, '
'; //输出6(因为使用完成后再加减)
$n = $i++; //将$i++的值赋予变量$n,而$i++是后缀自增
//于是就先将$i的值直接赋予$n,此时$n是6,然后$i再自增,结果为7
echo $n, '
'; //输出6
echo $i, '
'; //输出7
$m = 5;
$m++; //$m++,后缀自增,先使用,后加减
echo $m, '
'; //6
echo $m, '
'; //6
$i = 6;
$m = $i++ + 3;
echo $m, '
'; //9
echo $i, '
'; //7
//前缀形式:先加减,后使用;
$i = 3;
$n = ++$i;
echo $n, '
';
echo $i, '
';
6、逻辑运算符
!
(逻辑非)
&&
(逻辑与),两者同时为真,结果为真;否则为假;
||
(逻辑或),两者同时为假,结果为假;否则为真;
短路求值:在进行&&(逻辑与)
和||(逻辑或)
运算时,只要第一个表达式的结果可以确定整个表达式结果时,第二个表达式将忽略执行;
表达式是 PHP 最重要的基石。在 PHP中,几乎所写的任何东西都是一个表达式。简单但却最精确的定义一个表达式的方式就是“任何有值的东西”。
造成短路求值的情况有:
//短路求值案例
$i = 1;
$n = 1;
if ($i > 0 || ++$n) {
$i++;
$n++;
}
echo $i, '
'; //2
echo $n, '
'; //2
7、执行运算符 `` (反引号)
PHP 支持一个执行运算符:反引号(``)。注意这不是单引号!PHP 将尝试将反引号中的内容作为 shell 命令来执行,并将其输出信息返回(即,可以赋给一个变量而不是简单地丢弃到标准输出)。
//执行运算符
//在windows环境下,dir命令可以显示当前/指定目录下的文件/子目录
echo `dir`;
8、错误抑制符 @
PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
//要打开当前目录下的readme.txt文件
$handle = @fopen('readme.txt', 'r');
//不加@ 会报错如下信息:Warning: fopen(readme.txt): failed to open stream: No such file or directory
//加@ 就不会报错
注意:该运算符只能对表达式有效;
单目运算符:只有一个操作数的运算符,如+(正号)、-(负号)、!、@
双目运算符:有两个操作数的运算符,如*、/、>、>=、&&、||等
三目运算符:有三个操作数的运算符;
expression ? value1 : value2(如果expression为真,返回value1,否则返回value2)
expression ?: value2(如果expression为真,则返回自身,否则返回value2)
原型是 expression ? expression : value2;
//三目运算符
$n = 1;
$m = $n > 2 ? 5 : 7;
echo $m, '
';//7
//expression ?: value2
//(如果expression为真,则返回自身,否则返回value2)
$i = 5;
$m = $i > 0 ?: 7;
var_dump($m); //bool(true)
更多详细内容请访问:运算符