PHP运算符

一、按作用划分

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中,几乎所写的任何东西都是一个表达式。简单但却最精确的定义一个表达式的方式就是“任何有值的东西”。

造成短路求值的情况有:

  1. 逻辑与运算时,第一个表达式的结果为false;
  2. 逻辑或运算时,第一个表达式的结果为true;

//短路求值案例
$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)

三、运算符的优先级

PHP运算符_第1张图片

更多详细内容请访问:运算符

你可能感兴趣的:(PHP)