首页 » Web前端 » php编程括号技巧_PHP8的运算符PHP8常识详解

php编程括号技巧_PHP8的运算符PHP8常识详解

访客 2024-11-23 0

扫一扫用手机浏览

文章目录 [+]

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

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

php编程括号技巧_PHP8的运算符PHP8常识详解

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

php编程括号技巧_PHP8的运算符PHP8常识详解
(图片来自网络侵删)

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

本节紧张的知识点有:运算符优先级、算术运算符、赋值运算符、位运算符、比较运算符、缺点掌握运算符、实行运算符、递增/递减运算符、逻辑运算符、字符串运算符、数组运算符、类型运算符、三元运算符。

一、运算符优先级

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

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

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

二、算术运算符

1、+$a , 标识运算, 根据情形将 $a 转化为 int 或 float。

2、-$a ,取反运算, $a 的负值。

3、$a + $b, 加法运算, $a 和 $b 的和。

4、$a - $b, 减法运算, $a 和 $b 的差。

5、$a $b, 乘法运算, $a 和 $b 的积。

6、$a / $b, 除法运算, $a 除以 $b 的商。

7、$a % $b, 取模运算, $a 除以 $b 的余数。

8、$a $b, 求幂运算, $a 的 $b次方的值。

示例:

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

运行结果如下:

22-2-2

三、赋值运算符

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

3.1、算术赋值运算符

1、$a += $b, 等同于 $a = $a + $b ,加法运算符

2、$a -= $b, 等同于 $a = $a - $b ,减法运算符

3、$a = $b, 等同于 $a = $a $b ,乘法运算符

4、$a /= $b, 等同于 $a = $a / $b ,除法运算符

5、$a %= $b,等同于 $a = $a % $b, 取模运算符

6、$a = $b ,等同于 $a = $a $b ,指数运算符

3.2、位赋值运算符

1、$a &= $b, 等同于$a = $a & $b, 按位与

2、$a |= $b, 等同于$a = $a | $b ,按位或

3、$a ^= $b ,等同于$a = $a ^ $b ,按位异或

4、$a <<= $b,等同于 $a = $a << $b, 左移

5、$a >>= $b ,等同于$a = $a >> $b, 右移

3.3、其他赋值运算符

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

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

四、位运算符

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

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

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

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

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

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

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

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

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

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

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

<< 和 >> 运算符的操为难刁难象和结果始终都是整数。

五、比较运算符

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

1、$a == $b ,即是, true,如果类型转换后 $a 即是 $b。

2、$a === $b, 全即是, true,如果 $a 即是 $b,并且它们的类型也相同。

3、$a != $b ,不等, true,如果类型转换后 $a 不即是 $b。

4、$a <> $b ,不等 ,true,如果类型转换后 $a 不即是 $b。

5、$a !== $b ,不全等 ,true,如果 $a 不即是 $b,或者它们的类型不同。

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

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

8、$a <= $b, 小于即是, true,如果 $a 小于或者即是 $b。

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

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

六、缺点掌握运算符

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

七、实行运算符

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

<?php$output = `ls -al`;echo "<pre>$output</pre>";?>

把稳:

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

2、与其它某些措辞不同,反引号不能在双引号字符串中利用。

八、递增/递减运算符

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

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

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

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

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

九、逻辑运算符

一个编程措辞最主要的功能之一便是进行逻辑判断和运算,比如逻辑与、逻辑或、逻辑非、逻辑异或。

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

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

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

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

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

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

十、字符串运算符

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

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

运行结果如下:

你好PHP8你好PHP8$a你好PHP8

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

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

十一、数组运算符

1、$a + $b ,联合: $a 和 $b 的联合。

2、$a == $b ,相等 :如果 $a 和 $b 具有相同的键/值对则为 true。

3、$a === $b ,全等: 如果 $a 和 $b 具有相同的键/值对并且顺序和类型都相同则为 true。

4、$a != $b, 不等 :如果 $a 不即是 $b 则为 true。

5、$a <> $b, 不等 :如果 $a 不即是 $b 则为 true。

6、$a !== $b, 不全等: 如果 $a 不全即是 $b 则为 true。

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

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

十二、类型运算符

利用instanceof 来进行实例引用。

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

<?phpclass MyClass{}class NotMyClass{}$a = new MyClass;var_dump($a instanceof MyClass);var_dump($a instanceof NotMyClass);?>

以上示例会输出:

bool(true)bool(false)

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

<?phpclass ParentClass{}class MyClass extends ParentClass{}$a = new MyClass;var_dump($a instanceof MyClass);var_dump($a instanceof ParentClass);?>

以上示例会输出:

bool(true)bool(true)

3、检讨一个工具是否不是某个类的实例

<?phpclass MyClass{}$a = new MyClass;var_dump(!($a instanceof stdClass));?>

以上示例会输出:

bool(true)

4、用于确定一个变量是不是实现了某个接口的工具的实例

<?phpinterface MyInterface{}class MyClass implements MyInterface{}$a = new MyClass;var_dump($a instanceof MyClass);var_dump($a instanceof MyInterface);?>

以上示例会输出:

bool(true)bool(true)

十三、三元运算符

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

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

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

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

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

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

运行结果如下:

99>88100大于99

到此为止,本文紧张讲解的运算符优先级、算术运算符、赋值运算符、位运算符、比较运算符、缺点掌握运算符、实行运算符、递增/递减运算符、逻辑运算符、字符串运算符、数组运算符、类型运算符、三元运算符就讲解完毕了,大家逐步参考学习。

space

相关文章

介绍百度码,技术革新背后的智慧之光

随着科技的飞速发展,互联网技术已经成为我们生活中不可或缺的一部分。而在这个信息爆炸的时代,如何快速、准确地获取信息,成为了人们关注...

Web前端 2025-01-03 阅读1 评论0

介绍皮箱密码,开启神秘之门的钥匙

皮箱,作为日常生活中常见的收纳工具,承载着我们的珍贵物品。面对紧闭的皮箱,许多人却束手无策。如何才能轻松打开皮箱呢?本文将为您揭秘...

Web前端 2025-01-03 阅读1 评论0

介绍盗号器,网络安全的隐忧与应对步骤

随着互联网的快速发展,网络安全问题日益突出。盗号器作为一种非法工具,对网民的个人信息安全构成了严重威胁。本文将深入剖析盗号器的原理...

Web前端 2025-01-03 阅读1 评论0