1.5PHP语言的运算符(Operator)

1.字符串运算符

运算符名称例子结果
.串接$txt1 = “Hello” $txt2 = $txt1 . ” world!”现在 $txt2 包含 “Hello world!”
.=串接赋值$txt1 = “Hello” $txt1 .= ” world!”现在 $txt1 包含 “Hello world!”

2.算术运算符

例子名称结果
+$a标识根据情况将 $a 转化为 int 或 float。
-$a取反$a 的负值。
$a + $b加法$a 和 $b 的和。
$a – $b减法$a 和 $b 的差。
$a * $b乘法$a 和 $b 的积。
$a / $b除法$a 除以 $b 的商。
$a % $b取模$a 除以 $b 的余数。
$a ** $b求幂$a 的 $b次方的值。

3.算术赋值运算符

例子等同于操作
$a = 5$a = 5把右侧表达式的值赋给左边的操作数
$a += $b$a = $a + $b加法
$a -= $b$a = $a – $b减法
$a *= $b$a = $a * $b乘法
$a /= $b$a = $a / $b除法
$a %= $b$a = $a % $b取模
$a **= $b$a = $a ** $b指数

4.位运算符

例子名称结果
$a & $bAnd(按位与)将把 $a 和 $b 中都为 1 的位设为 1。
$a | $bOr(按位或)将把 $a 和 $b 中任何一个为 1 的位设为 1。
$a ^ $bXor(按位异或)将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1。
~ $aNot(按位取反)将 $a 中为 0 的位设为 1,反之亦然。
$a << $bShift left(左移)将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。
$a >> $bShift right(右移)将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。

5.位赋值运算符

例子等同于操作
$a &= $b$a = $a & $b按位与
$a |= $b$a = $a | $b按位或
$a ^= $b$a = $a ^ $b按位异或
$a <<= $b$a = $a << $b左移
$a >>= $b$a = $a >> $b右移

6.递增/递减运算符

例子名称效果
++$a前加$a 的值加一,然后返回 $a
$a++后加返回 $a,然后将 $a 的值加一。
–$a前减$a 的值减一, 然后返回 $a
$a–后减返回 $a,然后将 $a 的值减一。

7.比较运算符

例子名称结果
$a == $b等于true,如果类型转换后 $a 等于 $b
$a === $b全等true,如果 $a 等于 $b,并且它们的类型也相同。
$a != $b不等true,如果类型转换后 $a 不等于 $b
$a <> $b不等true,如果类型转换后 $a 不等于 $b
$a !== $b不全等true,如果 $a 不等于 $b,或者它们的类型不同。
$a < $b小与true,如果 $a 严格小于 $b
$a > $b大于true,如果 $a 严格大于 $b
$a <= $b小于等于true,如果 $a 小于或者等于 $b
$a >= $b大于等于true,如果 $a 大于或者等于 $b
$a <=> $b太空船运算符(组合比较符)$a小于、等于、大于 $b时 分别返回一个小于、等于、大于0的 int 值。

8.逻辑运算符

例子名称结果
$a and $bAnd(逻辑与)true,如果 $a 和 $b 都为 true
$a or $bOr(逻辑或)true,如果 $a 或 $b 任一为 true
$a xor $bXor(逻辑异或)true,如果 $a 或 $b 任一为 true,但不同时是。
! $aNot(逻辑非)true,如果 $a 不为 true
$a && $bAnd(逻辑与)true,如果 $a 和 $b 都为 true
$a || $bOr(逻辑或)true,如果 $a 或 $b 任一为 true

9.数组运算符

例子名称结果
$a + $b联合$a 和 $b 的联合。
$a == $b相等如果 $a 和 $b 具有相同的键/值对则为 true
$a === $b全等如果 $a 和 $b 具有相同的键/值对并且顺序和类型都相同则为 true
$a != $b不等如果 $a 不等于 $b 则为 true
$a <> $b不等如果 $a 不等于 $b 则为 true
$a !== $b不全等如果 $a 不全等于 $b 则为 true

10.三元运算符

三元运算符是类似于条件语句 if-else 的表达式版本。

(expr1) ? (expr2) : (expr3) 

表达式 (expr1) ? (expr2) : (expr3) 在 expr1 求值为 true 时的值为 expr2,在 expr1 求值为 false 时的值为 expr3。

11.NULL合并运算符

<?php
// NULL 合并运算符的例子
$action = $_POST['action'] ?? 'default';

// 以上例子等同于于以下 if/else 语句
if (isset($_POST['action'])) {
    $action = $_POST['action'];
} else {
    $action = 'default';
}

?>
(expr1) ?? (expr2)

当 expr1 为 null,表达式 (expr1) ?? (expr2) 等于 expr2,否则为 expr1。

12.引用赋值运算符

引用赋值运算符&可以在赋值操作中使用。通常,在将一个变量的值赋给另一个变量的时候,会先产生原变量的一个副本,然后再将它保存在内存的其他地方。例如:

$a = 5;
$b = $a;
$a = 7;
//$b的值依然是5

首先,会产生$a的一个副本,然后再将它保存到$b(内存的其他地方)。如果改变$a和$b中任意一个的值,都不会改变另外一个变量的值,很显然,这两个变量已经指向了两个不同的内存地址。

要避免生成副本,可以使用引用操作符&

$a = 5;
$b = &$a;
$a = 7;
//$a和$b的值都是7

很显然,$a和$b都指向了同一个内存地址。

13.use运算符

可以使用use运算符导入并别名其他命名空间内的成员:类,命名空间,接口,Trait,函数,常量。

// 导入类并别名
use My\Full\Classname as Another;

// 等同于 use My\Full\NSname as NSname
use My\Full\NSname;

// 导入全局类
use ArrayObject;

// 导入函数
use function My\Full\functionName;

// 导入并别名函数
use function My\Full\functionName as func;

// 导入常量
use const My\Full\CONSTANT;

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/back/php/4933.html

发表评论

登录后才能评论