返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP8的运算符-PHP8知识详解
  • 855
分享到

PHP8的运算符-PHP8知识详解

PHP开发phpPHP教程PHP8 2023-09-16 14:09:02 855人浏览 八月长安
摘要

运算符是可以通过给出的一或多个值(用编程行话来说,表达式)来产生另一个值(因而整个结构成为一个表达式)的东西。 PHP8的运算符有很多,按类型分有一元运算符、二元运算符、三元运算符。 一元运算符只对一个表达式执行操作,只能接受一个值,例如

运算符是可以通过给出的一或多个值(用编程行话来说,表达式)来产生另一个值(因而整个结构成为一个表达式)的东西。

PHP8的运算符有很多,按类型分有一元运算符二元运算符三元运算符

一元运算符只对一个表达式执行操作,只能接受一个值,例如 !(逻辑取反运算符)或 ++(递增运算符)。 

二元运算符用于两个操作数之间,可接受两个值,例如熟悉的算术运算符 +(加)和 -(减),大多数 PHP 运算符都是这种。

三元运算符用在三个操作数之间,可接受三个值,列如唯一的三元运算符 ? :。

本节主要的知识点有:运算符优先级、算术运算符、赋值运算符、位运算符比较运算符错误控制运算符执行运算符递增/递减运算符逻辑运算符字符串运算符、数组运算符、类型运算符、三元运算符。

Image

一、运算符优先级

php8 的运算符完整列表见下面运算符优先级。解释了运算符优先级和结合方向,这控制着在表达式包含有若干个不同运算符时究竟怎样对其求值。

运算符优先级指定了两个表达式绑定得有多“紧密”。例如,表达式 1 + 5 * 3 的结果是 16 而不是 18 是因为乘号(“*”)的优先级比加号(“+”)高。必要时可以用括号来强制改变优先级。例如:(1 + 5) * 3 的值为 18。

如果运算符优先级相同,那运算符的结合方向决定了该如何运算。例如,"-"是左联的,那么 1 - 2 - 3 就等同于 (1 - 2) - 3 并且结果是 -4. 另外一方面,"="是右联的,所以 $a = $b = $c 等同于 $a = ($b = $c)。

没有结合的相同优先级的运算符不能连在一起使用,例如 1 < 2 > 1 在PHP是不合法的。但另外一方面表达式 1 <= 1 == 1 是合法的, 因为 == 的优先级低于 <=。

关联性仅对二(三)元操作符有意义。 一元操作符是前缀或者后缀,所以不适用该概念。 例如 !!$a 仅可分为 !(!$a)。

括号的使用,哪怕在不是必要的场合下,通过括号的配对来明确标明运算顺序,而非靠运算符优先级和结合性来决定,通常能够增加代码的可读性。

下表按照优先级从高到低列出了运算符。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。

Image

二、算术运算符

+$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次方的值。

示例:

";     //换行显示echo (5 % -3);   // 打印 2echo "
";     //换行显示echo (-5 % 3);   // 打印 -2echo "
";     //换行显示echo (-5 % -3);  // 打印 -2?>

运行结果如下:

22-2-2

三、赋值运算符

赋值运算符的作用是把一定的数值加载给特定的变量。基本的赋值运算符是“=”。即把右边表达式的值赋给左边的运算数(变量)。

1、算术赋值运算符 

$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、位赋值运算符

$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, 右移

3、其他赋值运算符

$a .= $b, 等同于$a = $a . $b ,字符串拼接

$a ??= $b, 等同于$a = $a ?? $b ,NULL 合并

四、位运算符

位运算符允许对整型数中指定的位进行求值和操作。

$a & $b ,And(按位与), 将把 $a 和 $b 中都为 1 的位设为 1。

$a | $b ,Or(按位或), 将把 $a 和 $b 中任何一个为 1 的位设为 1。

$a ^ $b ,Xor(按位异或), 将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1。

~ $a Not,(按位取反), 将 $a 中为 0 的位设为 1,反之亦然。

$a << $b, Shift left(左移), 将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。

$a >> $b, Shift right(右移), 将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。

要用括号确保想要的优先级。例如 $a & $b == true 先进行比较再进行按位与;而 ($a & $b) == true 则先进行按位与再进行比较。

位移在 PHP 中是数学运算。向任何方向移出去的位都被丢弃。左移时右侧以零填充,符号位被移走意味着正负号不被保留。右移时左侧以符号位填充,意味着正负号被保留。

如果 &、 | 和 ^ 运算符的左右两个操作对象都是字符串,将对会组成字符串的字符 ASCII 值执行操作,结果也是一个字符串。除此之外,两个操作对象都将 转换为整数 ,结果也将会是整数。

如果 ~ 运算符的操作对象是字符串,则将对组成字符串的字符 ASCII 值进行操作, 结果将会是字符串,否则操作对象和结构都会是整数。

<< 和 >> 运算符的操作对象和结果始终都是整数。

五、比较运算符

比较运算符,如同它们名称所暗示的,允许对两个值进行比较。

$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,或者它们的类型不同。

6,、$a < $b, 小于, true,如果 $a 严格小于 $b。

$a > $b, 大于, true,如果 $a 严格大于 $b。

$a <= $b, 小于等于, true,如果 $a 小于或者等于 $b。

9,、$a >= $b, 大于等于, true,如果 $a 大于或者等于 $b。

$a <=> $b, 太空船运算符(组合比较符), 当$a小于、等于、大于 $b时 分别返回一个小于、等于、大于0的 int 值。

六、错误控制运算符

PHP 支持一个错误控制运算符“@”。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误诊断都被抑制。

七、执行运算符

PHP 支持一个执行运算符:反引号(``)。注意这不是单引号!PHP 将尝试将反引号中的内容作为 shell 命令来执行,并将其输出信息返回(即,可以赋给一个变量而不是简单地丢弃到标准输出)。使用反引号运算符“`”的效果与函数 shell_exec() 相同。

$output
";?>

注意:

关闭了 shell_exec() 时反引号运算符是无效的。

与其它某些语言不同,反引号不能在双引号字符串中使用。

八、递增/递减运算符

PHP 支持 C 风格的前/后递增与递减运算符。

++$a, 前加: $a 的值加一,然后返回 $a。

$a++ ,后加: 返回 $a,然后将 $a 的值加一。

--$a ,前减 :$a 的值减一, 然后返回 $a。

$a-- ,后减 :返回 $a,然后将 $a 的值减一。

九、逻辑运算符

一个编程语言最重要的功能之一就是进行逻辑判断和运算,比如逻辑与、逻辑或、逻辑非、逻辑异或。

$a and $b ,And(逻辑与): true,如果 $a 和 $b 都为 true。

$a or $b, Or(逻辑或): true,如果 $a 或 $b 任一为 true。

$a xor $b, Xor(逻辑异或): true,如果 $a 或 $b 任一为 true,但不同时是。

! $a, Not(逻辑非): true,如果 $a 不为 true。

$a && $b ,And(逻辑与): true,如果 $a 和 $b 都为 true。

$a || $b, Or(逻辑或): true,如果 $a 或 $b 任一为 true。

十、字符串运算符

有两个字符串(string)运算符。第一个是连接运算符(“.”),它返回其左右参数连接后的字符串。第二个是连接赋值运算符(“.=”),它将右边参数附加到左边的参数之后。

";      //换行显示$a = "你好";      //给变量$a赋值$a .= "PHP8";     //现在 $a 包含 "你好 PHP8"echo $a;          //不打引号输出变量$aecho "
";      //换行显示echo '$a';        //打单引号输出变量$aecho "
";      //换行显示echo "$a";        //打双引号输出变量$a?>

运行结果如下:

你好PHP8你好PHP8$a你好PHP8

温馨提醒,对于字符串型数据输出,可以使用单引号,也可以使用双引号,也可以不使用引号。

使用单引号和双引号输出同一个变量,结果是不同的。单引号输出的是字符串,双引号和不带引号输出的是变量的值。

十一、数组运算符

$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。

+ 运算符把右边的数组元素附加到左边的数组后面,两个数组中都有的键名,则只用左边数组中的,右边的被忽略。

数组中的单元如果具有相同的键名和值则比较时相等。

十二、类型运算符

使用instanceof 来进行实例引用。

确定一个 PHP 变量是否属于某一类 class 的实例:

以上示例会输出:

bool(true)bool(false)

确定一个变量是不是继承自某一父类的子类的实例:

以上示例会输出:

bool(true)bool(true)

检查一个对象是否不是某个类的实例

以上示例会输出:

bool(true)

用于确定一个变量是不是实现了某个接口的对象的实例

以上示例会输出:

bool(true)bool(true)

十三、三元运算符

三元运算符是一种在编程中常用的条件语句,也被称为三目运算符或条件运算符。它通常用于简化条件判断和赋值操作。

在PHP8中,三元运算符“?:”被称为“三元运算符”或“三目运算符”,其语法格式为:

条件表达式 ? 表达式1 : 表达式2

其中,条件表达式为一个布尔表达式,如果该表达式的值为真,则返回表达式1的值;如果该表达式的值为假,则返回表达式2的值。

例如,以下是一个使用三元运算符的示例:

88";      $b = $a ?: "100不大于99"; $c = $a ? "100大于99" : "100不大于99"; echo $b;  echo "
";  echo $c;          ?>

运行结果如下:

99>88100大于99

到此为止,本文主要讲解的运算符优先级、算术运算符、赋值运算符、位运算符、比较运算符、错误控制运算符、执行运算符、递增/递减运算符、逻辑运算符、字符串运算符、数组运算符、类型运算符、三元运算符就讲解完毕了,大家慢慢参考学习

space

来源地址:https://blog.csdn.net/u010292470/article/details/132073454

--结束END--

本文标题: PHP8的运算符-PHP8知识详解

本文链接: https://lsjlt.com/news/409954.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PHP8的运算符-PHP8知识详解
    运算符是可以通过给出的一或多个值(用编程行话来说,表达式)来产生另一个值(因而整个结构成为一个表达式)的东西。 PHP8的运算符有很多,按类型分有一元运算符、二元运算符、三元运算符。 一元运算符只对一个表达式执行操作,只能接受一个值,例如 ...
    99+
    2023-09-16
    PHP开发 php PHP教程 PHP8
  • PHP8的数组-PHP8知识详解
    今天开始学习数组, 本文主要讲了三点:什么是数组、php8中数组的改进、数组函数。 一、什么是数组 在PHP8中,数组是非常重要的数据类型。相对于其他的数据类型,数组更像一种结构,而这种结构可以储存一系列数值。 数组中的数值被称为数组元素。...
    99+
    2023-09-24
    php PHP开发 PHP教程
  • PHP8的多维数组-PHP8知识详解
    今天分享的是php8的数组中的多维数组,主要内容有:多维数组的概念、创建和输出二维数组、创建和输出三维数组。 多维数组的概念 多维数组是包含一个或多个数组的数组。在多维数组中,主数组中的每一个元素也可以是一个数组,子数组中的每一个元素也...
    99+
    2023-10-06
    php PHP开发 PHP教程
  • PHP8的匿名函数-PHP8知识详解
    php 8引入了匿名函数(Anonymous Functions),它是一种创建短生命周期的函数,不需要命名,并且可以在其作用域内直接使用。以下是在PHP 8中使用匿名函数的知识要点: 创建匿名函数,语法格式如下: $fn = func...
    99+
    2023-09-13
    php PHP开发 PHP教程
  • PHP8的箭头函数-PHP8知识详解
    php 7.4 引入了箭头函数(Arrow Functions),并在 PHP 8 中得到了进一步改进和扩展。 箭头函数是一种更简洁的匿名函数形式,它们提供了一种更便捷的方式来定义轻量级的、单行的回调函数。 箭头函数的语法如下: fn (参...
    99+
    2023-09-09
    php PHP开发 PHP教程
  • 在PHP8中遍历数组-PHP8知识详解
    所谓遍历数组就是把数组中的变量值读取出来。遍历数组中的所有元素对程序员来说是经常使用的操作,通过遍历数组可以完成数组元素的查询工作。 这好比你去商场买东西一样,要买什么东西,就去该区域浏览一遍,以便找出适合自己的产品。 以下是遍历数组的两种...
    99+
    2023-09-27
    php PHP开发 PHP教程
  • PHP8函数包含文件-PHP8知识详解
    在php中,可以使用以下函数来包含其他文件:include()、include_once()、require()、require_once()。 include(): 包含并运行指定文件中的代码。如果文件不存在或包含过程中出现错误,将发...
    99+
    2023-09-10
    php PHP开发 PHP教程
  • PHP8的静态变量和方法-PHP8知识详解
    我们在上一课程讲到了public、private、protected这3个关键字,今天我们来讲解static关键字,明天再讲解final关键字。 如果不想通过创建对象来调用变量或方法,则可以将该变量或方法创建为静态变量或方法,也就是在变量或...
    99+
    2023-10-10
    php PHP开发 PHP教程
  • PHP8内置函数中的变量函数-PHP8知识详解
    在php8中,与变量相关的内置函数比较多,本文说一些比较重要的、常见的内置函数。今日着重讲解了5个,分别是:检测变量是否为空的函数empty()、判断变量是否定义过的函数isset()、销毁指定的变量的函数unset()、获取变量的类型的函...
    99+
    2023-09-18
    php PHP开发 PHP教程
  • 在PHP8中统计数组元素个数-PHP8知识详解
    在php8中,统计数组元素的个数,有下面几个函数:使用count()函数统计数组元素个数、使用sizeof()函数统计数组元素个数。还讲到了,使用array_count_values()函数来统计数组中每个元素出现的次数。 1、使用co...
    99+
    2023-09-18
    php PHP开发 PHP教程
  • 函数的参数传递和返回值-PHP8知识详解
    本文学习的是《php8知识详解》中的《函数的参数传递和返回值》。主要包括:向函数传递参数值、向函数传递参数引用、函数的返回值。 向函数传递参数值 函数是一段封闭的程序,有时候,程序员需要向函数传递一些数据进行操作。可以接受传入参数的函数...
    99+
    2023-08-31
    php PHP开发 PHP教程
  • C++基础知识之运算符重载详解
    目录运算符重载方式一, 使用成员函数重载运算符 需求:把牛肉换猪肉, 羊肉换猪肉方式二, 使用非成员函数【友元函数】重载运算符两种方式的区别两种方式的选择:总结运算符重载 为什么要使...
    99+
    2024-04-02
  • R语言运算符知识点讲解
    运算符 运算符:包含一个或者两个参数的无括号的参数 符号 说明 + ...
    99+
    2024-04-02
  • PHP8函数:get_debug_type()的用途详解
    PHP8是PHP语言的最新版本。这个版本新增了很多强大的功能和改进,在解释器性能、类型系统和错误处理方面有很多进展。其中一个非常实用的新功能是get_debug_type()函数。它可以方便地获取表达式的类型信息,这个函数的使用非常容易,让...
    99+
    2023-05-17
    函数 PHP get_debug_type()
  • Java运算符知识点总结
    本篇内容介绍了“Java运算符知识点总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java 运算符计算机的最基本用途之一就是执行数学运算...
    99+
    2023-06-02
  • 聊聊C++ 运算符重载知识
    前言 1.运算符重载是一种形式的C++多态。 2.重载运算符可以使代码看起来更加自然。 回顾类 在正常构造类的时候,有些成员方法可以不用写出来,例如在这样一个表示时间的类中,拷贝构造...
    99+
    2024-04-02
  • R语言运算符知识点总结
    运算符是一个符号,通知编译器执行特定的数学或逻辑操作。 R语言具有丰富的内置运算符,并提供以下类型的运算符。 运算符的类型 R语言中拥有如下几种运算符类型: 算术运算符 关...
    99+
    2024-04-02
  • java中有哪些算数运算符的基础知识
    这篇文章给大家分享的是有关java中有哪些算数运算符的基础知识的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。算数运算符算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。表格中...
    99+
    2023-06-20
  • Java运算符的知识点与代码汇总
    一:算术运算符 1.算术运算符有哪些 ①基本四则运算符:+ - * / % ②增量赋值运算符:+= -= *= /= %= ③自增/自减运算符++ – 2.如何使用算术运算符 ...
    99+
    2024-04-02
  • 了解Go语言中常用运算符的深层知识
    深入了解Go语言中的常用运算符,需要具体代码示例 在Go语言中,运算符是用来进行各种计算和操作的符号。掌握常用运算符的使用,对于编写高效、正确的代码非常重要。本文将深入探讨Go语言中的常用运算符,并通过具体的...
    99+
    2024-01-18
    运算符 Go语言 常用
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作