PHP运算符汇总

发布时间:2024年01月14日

??前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家(点击跳转到网站)??

一、算数运算符
基础理解
  • 加减乘除、求余数、整数除法(向下取整)、字符串拼接等
<?php 
$x=10; 
$y=6;
//求和
echo ($x + $y); // 10+6
echo '<br>';  // 换行
//求差
echo ($x - $y); // 10-6
echo '<br>';  // 换行
//求积
echo ($x * $y); // 60
echo '<br>';  // 换行
//除法未保留小数
echo ($x / $y); // 输出1.6666666666667
echo '<br>';  // 换行
//*整数除法,“向下取整”,7除以2等于3.5,所以 intdiv(7, 2) 返回3。在第二个例子中,-7除以2等于-3.5,所以 intdiv(-7, 2) 返回-4
echo intdiv(7, 2);  // 输出: 3
echo intdiv(-7, 2);  // 输出: -4
echo '<br>'; 
//求模
echo ($x % $y); // 输出4(余数)
echo '<br>';  // 换行
//求负数
echo -$x;
echo '<br>';  // 换行
//字符串拼接
c;//"jsm666"
echo '<br>';  // 换行
?>

二、赋值运算符
基础理解
  • 赋值,其实就是把算数运算符的值进行赋值,和原本没啥区别
<?php 
$x=10; 
echo $x; // 输出10
echo '<br>';  // 换行
// 	x = x + y
$y=20; 
$y += 100;
echo $y; // 输出120
echo '<br>';  // 换行
//x = x - y
$z=50;
$z -= 25;
echo $z; // 输出25
echo '<br>';  // 换行
//x = x * y
$i=5;
$i *= 6;
echo $i; // 输出30
echo '<br>';  // 换行
//x = x / y
$j=10;
$j /= 5;
echo $j; // 输出2
echo '<br>';  // 换行
//x = x % y
$k=15;
$k %= 4;
echo $k; // 输出3
echo '<br>';  // 换行
//a .= b :链接两个字符串
$k="jsm";
echo $k .= "666";//“jsm666”
echo '<br>';  // 换行
//*用不同的运算符得到相同的结果
$a = "Hello";
$b = $a . " world!";
echo $b; // 输出Hello world! 
echo '<br>';  // 换行
$x="Hello";
$x .= " world!";
echo $x; // 输出Hello world! 
?>

三、递增/递减运算符
基础理解
  • 递增、递减,这个大部分语言都有的逻辑不阐述
<?php

//++ x:预递增,x 加 1,然后返回 x
$x=10; 
echo ++$x; // 输出11
echo '<br>';  // 换行

//x ++:后递增,返回 x,然后 x 加 1
$y=10; 
echo $y++; // 输出10
echo '<br>';  // 换行

//-- x: 预递减,x 减 1,然后返回 x
$z=5;
echo --$z; // 输出4
echo '<br>';  // 换行

//x --:后递减,返回 x,然后 x 减 1
$i=5;
echo $i--; // 输出5
echo '<br>';  // 换行
?>

四、比较运算符
基础理解
  • 比较操作符可以比较两个值的时候使用,实际业务场景语句较多,比大小这些
运算符名称等于描述实例
x == y等于如果 x 等于 y,则返回 true5==8 返回 false
x === y绝对等于如果 x 等于 y,且它们类型相同,则返回 true5===“5” 返回 false
x != y不等于如果 x 不等于 y,则返回 true5!=8 返回 true
x <> y不等于如果 x 不等于 y,则返回 true5<>8 返回 true
x !== y不绝对等于如果 x 不等于 y,或它们类型不相同,则返回 true5!==“5” 返回 true
x > y大于如果 x 大于 y,则返回 true5>8 返回 false
x < y小于如果 x 小于 y,则返回 true5<8 返回 true
x >= y大于等于如果 x 大于或者等于 y,则返回 true5>=8 返回 false
x <= y小于等于如果 x 小于或者等于 y,则返回 true5<=8 返回 true
  • var_dump 是 PHP 中的一个函数,用于在屏幕上显示变量的详细信息,这里是为了正确显示输出的布尔值(bool)
<?php
$x=100; 
$y="100";

//值相同:true
var_dump($x == $y);
echo "<br>";

//数据格式不同:false
var_dump($x === $y);
echo "<br>";

//==和!=都是比较值而不比较格式:false
var_dump($x != $y);
echo "<br>";

//true
var_dump($x !== $y);
echo "<br>";

$a=50;
$b=90;
var_dump($a > $b);//false
echo "<br>";
var_dump($a < $b);//true
?>

五、逻辑运算符
基础理解
  • 逻辑运算符的返回是或者否,实际使用场景可能是一种逻辑思维的提升,不能仅仅局限于一些现有的逻辑,例如与或非结合三元等、函数判断等

比如以下情况(这里的不等于就用的是绝对等于)

collect(A)->filter(function($item) {
  if(is_array($item)) {
    return $item['importance'] !== 1 ? true : $item['importance'] = 'hbt';
  } else {
    return $item->importance !== 1 ? true : $item->importance ='hbt';
  }
}
)->values();
  • 运算符都很简单,这里的逻辑运算符如果和判断运算符结合起来,可以处理一些实际业务场景下的自定义运算逻辑
运算符名称描述实例
x and y如果 x 和 y 都为 true,则返回 truex=6 y=3 (x < 10 and y > 1) 返回 true
x or y如果 x 和 y 至少有一个为 true,则返回 truex=6 y=3 (x6 or y5) 返回 true
x xor y异或如果 x 和 y 有且仅有一个为 true,则返回 truex=6 y=3 (x6 xor y3) 返回 false
x && y如果 x 和 y 都为 true,则返回 truex=6 y=3 (x < 10 && y > 1) 返回 true
x || y如果 x 和 y 至少有一个为 true,则返回 truex=6 y=3 (x5 || y5) 返回 false
! x如果 x 不为 true,则返回 truex=6 y=3 !(x==y) 返回 true

六、数组运算符
基础理解
  • 数组运算符:数组运算符是对复杂一点的数据进行了一个运算,而不再是单一的数据格式
运算符名称描述
x + y集合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
  • 注意:

    在PHP中,x <> y 和 $x != $y 都是用于比较两个变量是否不相等的操作符,但它们之间存在一些差异。

    1. x <> y:这是使用双等号(<>)作为比较操作符。它比较两个变量的值是否不相等,而不考虑它们的类型。如果两个变量的值不相等,则返回 true,否则返回 false。
    2. $x != $y:这是使用双不等号(!=)作为比较操作符。它也比较两个变量的值是否不相等,但同时还会检查它们的类型是否不同。如果两个变量的值不相等或类型不同,则返回true,否则返回 false。因此,主要的区别在于类型检查方面。x <> y 只比较值是否相等,而 $x != $y 不仅比较值是否相等,还检查类型是否不同。
<?php
$x = array("a" => "red", "b" => "green"); 
$y = array("c" => "blue", "d" => "yellow"); 
$z = $x + $y; // $x 和 $y 数组合并

var_dump($x);//输出x
echo "<br>";//分行
var_dump($y);//输出y
echo "<br>";//分行
var_dump($z);//输出z(合并之后)
echo "<br>";//分行

var_dump($x == $y);//bool(false) :因为两个数组值、键对不相同
echo "<br>";//分行

var_dump($x === $y);//bool(false) :因为两个数组值、键对不相同(这里要true,需要顺寻相同,而==不需要这一点)
echo "<br>";//分行

var_dump($x != $y);//bool(true) :满足不相等条件
echo "<br>";//分行

var_dump($x <> $y);//bool(true):这里要和!=区别出来,<>会检查数据类型是否相同
echo "<br>";//分行

var_dump($x !== $y);//bool(true) :满足不恒等条件
echo "<br>";//分行
?>

七、三元运算符
基础理解
  • A==1?B :C :A是否等于1?是则返回B,不是则返回C,可嵌套

八、太空船运算符
基础理解
  • <=> :“前大为正,相等为0,后大为负“

$c = $a <=> $b

解释:

  • 如果 $a > b ? ? , 则 ? ? b**, 则 ** b??,??c 的值为 1
  • 如果 $a == b ? ? , 则 ? ? b**, 则 ** b??,??c 的值为 0
  • 如果 $a < b ? ? , 则 ? ? b**, 则 ** b??,??c 的值为 -1
<?php
// 整型
echo 1 <=> 1; // 0
echo "<br>";//分行
echo 1 <=> 2; // -1
echo "<br>";//分行
echo 2 <=> 1; // 1
echo "<br>";//分行
 
// 浮点型
echo 1.5 <=> 1.5; // 0
echo "<br>";//分行
echo 1.5 <=> 2.5; // -1
echo "<br>";//分行
echo 2.5 <=> 1.5; // 1
echo "<br>";//分行
// 字符串
echo "a" <=> "a"; // 0
echo "<br>";//分行
echo "a" <=> "b"; // -1
echo "<br>";//分行
echo "b" <=> "a"; // 1
echo "<br>";//分行
?>

注:运算符优先级不做阐述,小学生的问题

文章来源:https://blog.csdn.net/weixin_45869823/article/details/135578596
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。