欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > PHP运算符

PHP运算符

2025/1/23 1:15:04 来源:https://blog.csdn.net/qq_29861999/article/details/145184839  浏览:    关键词:PHP运算符

目录

算术运算符

递增/递减运算符

赋值运算符

位运算符

比较运算符

错误控制运算符

执行运算符

逻辑运算符

字符串运算符

数组运算符

 类型运算符


运算符是可以通过给出的一个或多个值来产生另一个值的东西。

运算符可以按照其能接受几个值来分组。一元运算符只能接受一个值,例如 ++; 二元运算符可接受两个值,例如熟悉的 +(加)和 -(减),以及三元运算符,可以接受三个值。

 

算术运算符

它跟我们在学校学习的基本数学知识是一样的,比如:加、减、乘、除、取模。

#示例

<?php$a = 5 + 3;$b = 6 - 1;$c = 2 * 8;$d = 10 / 5;$e = 5 % 3;var_dump($a, $b, $c, $d, $e);

执行结果

int(8)
int(5)
int(16)
int(2)
int(2)

 

递增/递减运算符

递增/递减运算符属于一元运算符,它可以将值递增或者递减1。

#示例

<?php//前加$a = 2;var_dump('前加:'. ++$a);//后加$a = 2;var_dump('后加:'.$a++);//前减$a = 2;var_dump('前减:'.--$a);//后减$a = 2;var_dump('后减:'.$a--);

执行结果

string(8) "前加:3"
string(8) "后加:2"
string(8) "前减:1"
string(8) "后减:2"

结论

前加:$a的值先加1,然后再返回$a;后加:先返回$a,然后$a的值再加1;

前减:$a的值先减1,然后再返回$a;后减:先返回$a,然后$a的值再减1;

赋值运算符

赋值运算符是“=”,我们可能会把它联想成等于号,但其实不是,它是把右边的表达式赋值给左边的表达式。

#示例

<?php$a = 2;$a += 3;//等同于 $a = $a + 3;var_dump($a);

执行结果

int(5)

引用赋值

语法:$a = &$b;引用赋值意味着两个变量指向了同一个数据,并没有拷贝新的。

#示例

<?php$a = 2;$b = &$a;var_dump($b);$a = 5;var_dump($b);

执行结果

int(2)
int(5)

在这里$b指向的是$a,因此当$a的值有变化时,$b也会跟着改变。

位运算符

位运算就是对某些数的二进制形式进行运算,一般有按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移(<<)、右移(>>)。

#示例:按位与(&)

<?php$a = 5; $b = 2;echo $a & $b;

执行结果

0

按位与就是两个数的对应位都为1则结果为1。示例讲解:5的二进制表示为:101,2的二进制表示为:010;按照每一位进行与预算:1&0、0&1、1&0,得到的结果是000即0。

 

#示例:按位异或(^)

<?php$a = 5;$b = 2;echo $a ^ $b;

输出结果

7

按位异或就是两个数的对应位不相同则结果为1。示例讲解:5的二进制表示为:101,2的二进制表示为:010;按照每一位进行异或预算:1^0、0^1、1^0,得到的结果是111,十进制则是7。

 

#示例:左移(<<)

<?php$a = 5;echo $a << 2;

输出结果

20

示例讲解:5的二进制表示为:101,<<2表示向左边移动两次即:10100,十进制则是20。(小技巧:每一次移动就表示结果*2)。

 

比较运算符

比较运算符:把两个值进行比较。常用的运算符如下:

  • 等于(==):类型转换后两个值相等。
  • 全等(===):值和类型都相同。
  • 不等于(!=):类型转换后两个值不相等。
  • 不全等(!==):值和类型都不相同。
  • 小于(<)、大于(>)、小于等于(<=)、大于等于(>=)
  • 太空船运算符(<=>):也可以叫组合比较符号,左边数小于、等于、大于右边数时分别返回一个小于、等于、大于0的值。

#示例:等于、全等

<?php$a = 1;$b = '1';//等于var_dump($a == $b);//全等var_dump($a === $b);

 执行结果

bool(true)
bool(false)

#示例:太空船运算符

<?php//小于$a = 1;$b = 2;var_dump($a<=>$b);//等于$a = 2;$b = 2;var_dump($a<=>$b);//大于$a = 3;$b = 2;var_dump($a<=>$b);

执行结果

int(-1)
int(0)
int(1)

 

错误控制运算符

在表达式之前加上@符号,该表达式可能产生的错误都会被抑制。也就是不会抛出错误信息。

#示例

<?php$arr = ['a'=>'test'];var_dump($arr['b']);var_dump(@$arr['b']);

执行结果

PHP Warning:  Undefined array key "b" in D:\soft\phpstudy\phpstudy_pro\WWW\a.com\1.php on line 3
Warning: Undefined array key "b" in D:\soft\phpstudy\phpstudy_pro\WWW\a.com\1.php on line 3
NULL
NULL

当尝试访问不存在的key时,如果加上@符号,则不会抛出警告信息。

 

执行运算符

PHP支持一个执行运算符:反引号(``),它会把反引号里面的内容作为shell命令来执行,效果等同于shell_exec()函数。

#示例:windows环境输出当前目录下的文件

<?php
$output = `dir`;
echo $output;

执行结果

 Directory of D:\soft\phpstudy\phpstudy_pro\WWW\a.com2025/01/17  15:21    <DIR>          .
2025/01/11  09:53    <DIR>          ..
2025/01/11  09:53                 0 .htaccess
2025/01/17  15:21    <DIR>          .idea
2025/01/17  15:21                54 1.php
2025/01/14  18:31                21 1.txt
2025/01/15  20:17                28 2.php
2025/01/15  16:41                71 composer.json
2025/01/15  16:41             1,772 composer.lock
2025/01/11  09:53    <DIR>          error
2025/01/11  09:53                 0 nginx.htaccess
2025/01/15  11:30    <DIR>          vendor7 File(s)          1,946 bytes5 Dir(s)  193,647,759,360 bytes free

 

逻辑运算符

例子名称规则
$a and $band(逻辑与)只有$a和$b都为true则结果为true,否则为false
$a or $bor (逻辑或)只要$a、$b中有一个为true,则结果为true,否则为false
$a xor $bxor (逻辑异或)$a、$b只有一个为true,则结果为true,否则为false
!$a!(逻辑非)取反,只有$a是false,才为true
$a && $b&&(逻辑与)只有$a和$b都为true则结果为true,否则为false
$a || $b|| (逻辑或)只要$a、$b中有一个为true,则结果为true,否则为false

通过上面的表格可以看到逻辑与、逻辑或有两种运算符,它们的运算规则是一样的,但是它们运算的优先级不一样。

#示例

<?php$a = true;$b = false;//逻辑与$c = $a && $b; // $c 输出false,因为 && 的优先级高于赋值运算符$d = $a and $b; // $d 输出true,因为 and 的优先级低于赋值//逻辑或$e = $a || $b; // $e 输出true,因为 || 的优先级高于赋值运算符$f = $b or $a; // $f 输出false,因为 or 的优先级低于赋值

结论:

and和or运算符的优先级低于赋值运算符,&& 和 ||运算符的优先级高于and和or。

and和or在使用的时候需要注意优先级,否则会导致意料之外的结果,通常建议使用 && 和 ||。

 

字符串运算符

字符串有两个运算符。

  • 连接运算符(“.”),它返回其左右参数连接后的字符串。
  • 连接赋值运算符(“.=”),它将右边参数附加到左边的参数之后。

#示例

<?php$a = "Hello ";$b = $a . "World!";var_dump($b);$a = "Hello ";$a .= "World!";var_dump($a);

执行结果

string(12) "Hello World!"
string(12) "Hello World!"

 

数组运算符

数组也有等于、全等、不等、不全等这些运算法,这里主要介绍联合运算符(+):把右边的数组元素加到左边的数组中,如果有相同的键名,则只保留左边的。

#示例

<?php$a = ['a'=>'red','b'=>'black'];$b = ['a'=>'blue', 'c'=>'yellow'];var_dump($a + $b);var_dump($b + $a);

执行结果

array(3) {["a"]=>string(3) "red"["b"]=>string(5) "black"["c"]=>string(6) "yellow"
}array(3) {["a"]=>string(4) "blue"["c"]=>string(6) "yellow"["b"]=>string(5) "black"
}

 

 类型运算符

instanceof 用于确定一个 PHP 变量是否属于某一个类的实例。

#示例

<?phpclass A {}class B extends A {}class C {}$obj_b = new B();var_dump($obj_b instanceof A);var_dump($obj_b instanceof C);

执行结果

bool(true)
bool(false)

由于class B继承了class A,因此对象B也属于class A。

完结

如果你在阅读这篇文章时有所收获,请不要忘记点赞评论加关注,你的支持是我创作的最大动力。当然,如果你在文中发现了疏漏之处,或是有着其他的见解,欢迎私信与我交流。


我是老卢,一个热爱分享、不断探索的知识旅者。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com