PHP十一种运算符


前言

本文主要展示了可用于 PHP 脚本中的各种运算符。运算符是可以通过给出的一或多个值(用编程行话来说,表达式)来产生另一个值(因而整个结构成为一个表达式)的东西。


提示:以下是本篇文章正文内容,下面案例可供参考

一、算术运算符

  • 标识:+$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 的结果和 $a 的符号相同。
  • 求幂:$a ** $b,$a的$b次方的值。

二、赋值运算符

赋值运算符用于向变量写值。基本的赋值运算符是“=”。意味着把右边表达式的值赋给左边的运算数。分为传值赋值和引用赋值。
传值赋值:

  • =:$a = 5,右侧表达式为左侧运算数设置值。
  • +=:$a += 5,即$a = $a + 5
  • -=:$a -= 5,即$a = $a - 5
  • *=:$a *= 5,即$a = $a * 5
  • /=:$a /= 5,即$a = $a / 5
  • %=:$a %= 5,即$a = $a % 5

引用赋值:意味着两个变量指向了同一个数据,没有拷贝任何东西。

$a = 3;
$b = &$a;
echo $a."<br>";	//输出3
echo $b."<br>";	//输出3
$a = 4;
echo $a."<br>";	//输出4
echo $b."<br>";	//输出4

三、字符串运算符

  • 串接:.(点)
  • 串接赋值:.=(点等于)
$str = "hello";
$str = $str." world";
echo $str;	//输出hello world
$st = "hello";
$st .= "world";
echo $st;	//输出hello world

四、递增/减运算符

  • 前加:++$a,$a 的值加一,然后返回 $a。
  • 后加:$a++,返回 $a,然后将 $a 的值加一。
  • 前减:–$a,$a 的值减一, 然后返回 $a。
  • 后减:$a–,返回 $a,然后将 $a 的值减一。
$A = 2;
$a = ++$A;	//$A+1,然后返回$A
echo $A;	//输出3
echo $a;	//输出3

$B = 2;
$b = $B++;	//返回$B,然后$B+1
echo $B;	//输出3
echo $b;	//输出2
//加加在前,先加再返回
//加加在后,先返回再加

递增递减还可以用在字符串上:$a = ‘Z’; $a++; 将把 $a 变成’AA’。字符变量只能递增,不能递减,并且只支持纯字母(a-z 和 A-Z)。递增/递减其他字符变量则无效,原字符串没有变化。

$str = "W";
$str_new = $str++;
echo $str;	//输出W
echo $str_new;	//输出X

$st = 'z';
$st_new = $st++;
echo $st."<br>";	//输出aa
echo $st_new."<br>";	//输出z

$s = 'Z';
$s_new = $s++;
echo $s."<br>";		//输出AA
echo $s_new."<br>";	//输出Z

递增或递减布尔值没有效果。


五、比较运算符

用于比较两个值(数字或字符串)

  • 等于:$x == $y;如果类型转换后 $x 等于 $y,返回true。
  • 全等:$x === $y;如果 $x 等于 $y,并且它们的类型也相同,返回true。
  • 不等:$x != $y;或$x <> $y;如果类型转换后 $x 不等于 $y,返回true。
  • 不全等:$x !== $y;如果 $x 不等于 $y,或者它们的类型不同,返回true。
  • 小于:$x < $y;如果 $x 严格小于 $y,返回true。
  • 大于:$x > $y;如果 $x 严格大于 $y,返回true。
  • 小于等于:$x <= $y;如果 $x 小于或者等于 $y,返回true。
  • 大于等于:$x >= $y;如果 $x 大于或者等于 $y,返回true。
  • 太空船运算符(组合比较符):当$x小于、等于、大于 $y时 分别返回一个小于、等于、大于0的 integer 值
// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
 
// Floats
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
 
// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
 
echo "a" <=> "aa"; // -1
echo "zz" <=> "aa"; // 1
 
// Arrays
echo [] <=> []; // 0
echo [1, 2, 3] <=> [1, 2, 3]; // 0
echo [1, 2, 3] <=> []; // 1
echo [1, 2, 3] <=> [1, 2, 1]; // 1
echo [1, 2, 3] <=> [1, 2, 4]; // -1
 
// Objects
$a = (object) ["a" => "b"]; 
$b = (object) ["a" => "b"]; 
echo $a <=> $b; // 0
 
$a = (object) ["a" => "b"]; 
$b = (object) ["a" => "c"]; 
echo $a <=> $b; // -1
 
$a = (object) ["a" => "c"]; 
$b = (object) ["a" => "b"]; 
echo $a <=> $b; // 1
 
// only values are compared
$a = (object) ["a" => "b"]; 
$b = (object) ["b" => "b"]; 
echo $a <=> $b; // 1
  • 由于浮点数 float 的内部表达方式,不应比较两个浮点数float是否相等。
  • 三元运算符:$str == 1 ? true : false;
  • 合并运算符:$a = $b ?? ‘default’;
//以上的合并运算符等同于
if(isset($b)){
	$a = $b;
}else{
	$a = 'default';
}

六、逻辑运算符

  • 逻辑与:$a && $b 或 $a and $b,$a且$b都为true时,返回true。
  • 逻辑或:$a || $b或 $a or $b,$a或$b有一个为true时,返回true。
  • 逻辑非:!$a,如果 $a 不为true时,返回true。
  • 逻辑异或:$a xor $b,如果 $a 或 $b 任一为true,但不同时是时,返回true。

七、位运算符

  • 按位与:$a & $b,将把 $a 和 $b 中都为 1 的位设为 1。
  • 按位或:$a | $b,将把 $a 和 $b 中任何一个为 1 的位设为 1。
  • 按位异或:$a ^ $b,将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1。
  • 按位取反:~$a,将 $a 中为 0 的位设为 1
  • 左移:$a << $b,将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。
  • 右移:$a >> $b,将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。

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


八、错误控制运算符

错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。@ 运算符只对表达式有效。可以把它放在变量,函数和 include 调用,常量,等等之前。不能把它放在函数或类的定义之前,也不能用于条件结构例如 if 和 foreach 等。


九、执行运算符

反引号(``)。PHP 将尝试将反引号中的内容作为 shell 命令来执行,并将其输出信息返回(即,可以赋给一个变量而不是简单地丢弃到标准输出)。使用反引号运算符“`”的效果与函数 shell_exec() 相同。
关闭了 shell_exec() 时反引号运算符是无效的,不能在双引号字符串中使用。


十、数组运算符

  • 联合:$a + $b,$a 和 $b 的联合。把右边的数组元素附加到左边的数组后面,两个数组中都有的键名,则只用左边数组中的,右边的被忽略。
  • 等于:$a == $b,如果 $a 和 $b 具有相同的键/值对则为 TRUE。
  • 全等:$a === $b,如果 $a 和 $b 具有相同的键/值对并且顺序和类型都相同则为 TRUE。
  • 不等:$a != $b或 $a <> $b,如果 $a 不等于 $b 则为 TRUE。
  • 不全等:$a !== $b,如果 $a 不全等于 $b 则为 TRUE。

十一、类型运算符

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

class test1{}
class test2{}
$str = new test2;
var_dump($str instanceof test1);	//输出bool(false)
var_dump($str instanceof test2);	//输出bool(true)

class test3{}
class test4 extends test3{}
$st = new test4;
var_dump($st instanceof test3);	//输出bool(true)
var_dump($st instanceof test4);	//输出bool(true)

总结

以上就是今天要讲的内容,本文仅仅简单介绍了PHP常见运算符的介绍。

  • 算术运算符:标识、取反、加、减、乘、除、取模、求幂。
  • 赋值运算符:1、传值运算符(=,+=,-=,*=,/=,%=)。2、引用运算符(&符,意味着两个变量指向了同一个数据,没有拷贝任何东西。)。
  • 字符串运算符:.(点,字符串拼接),.=(点等于,串接赋值)。
  • 递增递减运算符:++$a,$a++(加加在前,先加再返回)。
  • 比较运算符:==(等于),===(全等于),!=(<>不等于),!==(不全等于),<(小于),>(大于),<=(小于等于),>=(大于等于),<=>(太空船运算符)。
  • 逻辑运算符:&&(and 与),||(or 或),!(非),xor(异或)。
  • 位运算符:按位&(与),|(或),^(异或),~(取反),<<(左移,左移时右侧以零填充,符号位被移走意味着正负号不被保留),>>(右移,右移时左侧以符号位填充,意味着正负号被保留)。
  • 错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
  • 执行运算符:反引号,shell命令来执行,效果相当于shell_exec()。
  • 数组运算符:联合(右侧的数组加到左侧的数组后面,相同键名保留左侧),等于(相同的键值对),全等于(相同的键值对、顺序、类型),不等,不全等。
  • 类型运算符:instanceof 判断一个变量是否属于某一类的实例。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值