PHP基础运算符有哪些

发布时间:2021-10-15 10:57:50 作者:iii
来源:亿速云 阅读:168
# PHP基础运算符有哪些

PHP作为一门广泛使用的服务器端脚本语言,其运算符系统丰富而全面。运算符是构成PHP表达式的核心元素,掌握各类运算符的用法是PHP编程的基础。本文将全面介绍PHP中的基础运算符,包括算术运算符、赋值运算符、比较运算符、逻辑运算符、字符串运算符、数组运算符等,并通过大量示例帮助读者深入理解。

## 一、算术运算符

算术运算符用于执行基本的数学运算,如加减乘除等。PHP支持以下算术运算符:

| 运算符 | 名称       | 示例       | 结果                     |
|--------|------------|------------|--------------------------|
| +      | 加法       | $a + $b    | $a和$b的和               |
| -      | 减法       | $a - $b    | $a和$b的差               |
| *      | 乘法       | $a * $b    | $a和$b的积               |
| /      | 除法       | $a / $b    | $a除以$b的商             |
| %      | 取模       | $a % $b    | $a除以$b的余数           |
| **     | 幂运算     | $a ** $b   | $a的$b次方               |
| -      | 取反       | -$a        | $a的负数                 |
| ++     | 自增       | $a++或++$a | $a的值增加1              |
| --     | 自减       | $a--或--$a | $a的值减少1              |

### 1.1 基本算术运算示例

```php
$a = 10;
$b = 3;

echo $a + $b;  // 输出13
echo $a - $b;  // 输出7
echo $a * $b;  // 输出30
echo $a / $b;  // 输出3.333...
echo $a % $b;  // 输出1
echo $a ** $b; // 输出1000

1.2 自增和自减运算符

自增(++)和自减(–)运算符有前置和后置之分:

$x = 5;
echo $x++; // 输出5,然后$x变为6
echo ++$x; // $x先变为7,然后输出7

$y = 8;
echo $y--; // 输出8,然后$y变为7
echo --$y; // $y先变为6,然后输出6

二、赋值运算符

赋值运算符用于给变量赋值,最基本的赋值运算符是”=“。PHP还支持组合赋值运算符,将算术运算和赋值操作结合在一起。

运算符 示例 等价于 描述
= \(a = \)b - \(b的值赋给\)a
+= \(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 幂赋值
.= \(a .= \)b \(a = \)a . $b 字符串连接赋值

2.1 基本赋值示例

$a = 10;  // 简单赋值
$b = 5;

$a += $b; // $a = $a + $b = 15
$a -= $b; // $a = $a - $b = 10
$a *= $b; // $a = $a * $b = 50
$a /= $b; // $a = $a / $b = 10
$a %= $b; // $a = $a % $b = 0

2.2 字符串连接赋值

$str = "Hello";
$str .= " World!"; // $str = "Hello World!"

三、比较运算符

比较运算符用于比较两个值,返回布尔值true或false。PHP提供了多种比较运算符:

运算符 名称 示例 结果
== 等于 \(a == \)b 如果\(a等于\)b返回true
=== 全等 \(a === \)b 如果\(a等于\)b且类型相同
!= 不等 \(a != \)b 如果\(a不等于\)b返回true
<> 不等 \(a <> \)b 与!=相同
!== 不全等 \(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 比较两个表达式的大小

3.1 基本比较示例

$a = 5;
$b = "5";

var_dump($a == $b);   // bool(true),值相等
var_dump($a === $b);  // bool(false),类型不同
var_dump($a != $b);   // bool(false)
var_dump($a !== $b);  // bool(true)
var_dump($a < 10);    // bool(true)
var_dump($a > 3);     // bool(true)

3.2 太空船运算符(<=>)

太空船运算符是PHP7新增的运算符,用于比较两个表达式:

echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// 字符串比较也适用
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1

四、逻辑运算符

逻辑运算符用于组合条件语句,PHP支持以下逻辑运算符:

运算符 名称 示例 结果
and 逻辑与 \(a and \)b 如果\(a和\)b都为true返回true
or 逻辑或 \(a or \)b 如果\(a或\)b有一个为true返回true
xor 逻辑异或 \(a xor \)b 如果\(a或\)b有且仅有一个为true返回true
&& 逻辑与 \(a && \)b 与and相同,但优先级更高
|| 逻辑或 \(a \|\| \)b 与or相同,但优先级更高
! 逻辑非 !$a 如果$a不为true返回true

4.1 逻辑运算示例

$a = true;
$b = false;

var_dump($a and $b);   // bool(false)
var_dump($a or $b);    // bool(true)
var_dump($a xor $b);   // bool(true)
var_dump(!$a);         // bool(false)
var_dump($a && $b);    // bool(false)
var_dump($a || $b);    // bool(true)

4.2 短路求值特性

逻辑运算符具有短路求值特性:

function foo() {
    echo "foo called";
    return false;
}

// 因为第一个操作数为false,&&运算符不会调用foo()
false && foo();

// 因为第一个操作数为true,||运算符不会调用foo()
true || foo();

五、字符串运算符

PHP有两个字符串运算符:

运算符 名称 示例 结果
. 连接 \(a . \)b 连接\(a和\)b
.= 连接赋值 \(a .= \)b \(b连接到\)a后面

5.1 字符串连接示例

$str1 = "Hello";
$str2 = "World";
echo $str1 . " " . $str2; // 输出"Hello World"

$str1 .= " PHP";
echo $str1; // 输出"Hello PHP"

六、数组运算符

PHP提供了一些专门用于数组的运算符:

运算符 名称 示例 结果
+ 联合 \(a + \)b \(a和\)b的联合
== 相等 \(a == \)b 如果\(a和\)b具有相同的键/值对返回true
=== 全等 \(a === \)b 如果\(a和\)b具有相同的键/值对且顺序和类型相同
!= 不等 \(a != \)b 如果\(a不等于\)b返回true
<> 不等 \(a <> \)b 与!=相同
!== 不全等 \(a !== \)b 如果\(a不全等于\)b返回true

6.1 数组运算示例

$a = ["a" => "apple", "b" => "banana"];
$b = ["a" => "pear", "b" => "banana", "c" => "cherry"];

// 联合运算,保留左边数组的键
$c = $a + $b;
print_r($c); // 输出Array([a] => apple [b] => banana [c] => cherry)

// 数组比较
var_dump($a == $b);  // bool(false)
var_dump($a === $b); // bool(false)

七、其他运算符

7.1 三元运算符(?:)

三元运算符是if-else语句的简写形式:

$age = 20;
$status = ($age >= 18) ? "成人" : "未成年";
echo $status; // 输出"成人"

7.2 空合并运算符(??)

PHP7新增的空合并运算符用于简化isset()检查:

// 传统写法
$username = isset($_GET['user']) ? $_GET['user'] : 'guest';

// 使用空合并运算符
$username = $_GET['user'] ?? 'guest';

7.3 错误控制运算符(@)

@运算符用于抑制表达式可能产生的错误信息:

$file = @file('non_existent_file'); // 不会显示错误信息

八、运算符优先级

当多个运算符出现在同一个表达式中时,PHP会按照运算符优先级来决定运算顺序。以下是一些常见运算符的优先级(从高到低):

  1. clone, new
  2. **
  3. ++, –, ~, (int), (float), (string), (array), (object), (bool), @
  4. instanceof
  5. !
  6. *, /, %
  7. +, -, .
  8. <<, >>
  9. <, <=, >, >=
  10. ==, !=, ===, !==, <>
  11. &
  12. ^
  13. |
  14. &&
  15. ||
  16. ??
  17. ? :
  18. =, +=, -=, *=, **=, /=, .=, %=, &=, |=, ^=, <<=, >>=
  19. and
  20. xor
  21. or

可以使用括号来明确指定运算顺序:

$a = 1 + 2 * 3;   // 7 (乘法优先级高于加法)
$b = (1 + 2) * 3; // 9 (括号改变优先级)

九、总结

PHP提供了丰富的运算符类型,包括:

  1. 算术运算符:用于基本数学运算
  2. 赋值运算符:用于变量赋值
  3. 比较运算符:用于值比较
  4. 逻辑运算符:用于逻辑判断
  5. 字符串运算符:用于字符串操作
  6. 数组运算符:用于数组操作
  7. 其他特殊运算符:如三元运算符、空合并运算符等

掌握这些运算符的用法和优先级是编写高效PHP代码的基础。在实际开发中,合理使用运算符可以简化代码并提高可读性。建议开发者通过大量练习来熟悉各种运算符的行为特性,特别是类型转换和比较运算中的特殊情况。 “`

推荐阅读:
  1. php基础_字符函数or运算符号
  2. PHP基础-数据类型和运算符

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php

上一篇:php如何清除指定session

下一篇:php中如何去掉ufeff

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》