⭕️前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家(点击跳转到网站)⭕️
一、算数运算符
基础理解
- 加减乘除、求余数、整数除法(向下取整)、字符串拼接等
<?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,则返回 true | 5==8 返回 false |
x === y | 绝对等于 | 如果 x 等于 y,且它们类型相同,则返回 true | 5===“5” 返回 false |
x != y | 不等于 | 如果 x 不等于 y,则返回 true | 5!=8 返回 true |
x <> y | 不等于 | 如果 x 不等于 y,则返回 true | 5<>8 返回 true |
x !== y | 不绝对等于 | 如果 x 不等于 y,或它们类型不相同,则返回 true | 5!==“5” 返回 true |
x > y | 大于 | 如果 x 大于 y,则返回 true | 5>8 返回 false |
x < y | 小于 | 如果 x 小于 y,则返回 true | 5<8 返回 true |
x >= y | 大于等于 | 如果 x 大于或者等于 y,则返回 true | 5>=8 返回 false |
x <= y | 小于等于 | 如果 x 小于或者等于 y,则返回 true | 5<=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,则返回 true | x=6 y=3 (x < 10 and y > 1) 返回 true |
x or y | 或 | 如果 x 和 y 至少有一个为 true,则返回 true | x=6 y=3 (x6 or y5) 返回 true |
x xor y | 异或 | 如果 x 和 y 有且仅有一个为 true,则返回 true | x=6 y=3 (x6 xor y3) 返回 false |
x && y | 与 | 如果 x 和 y 都为 true,则返回 true | x=6 y=3 (x < 10 && y > 1) 返回 true |
x || y | 或 | 如果 x 和 y 至少有一个为 true,则返回 true | x=6 y=3 (x5 || y5) 返回 false |
! x | 非 | 如果 x 不为 true,则返回 true | x=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 都是用于比较两个变量是否不相等的操作符,但它们之间存在一些差异。
- x <> y:这是使用双等号(<>)作为比较操作符。它比较两个变量的值是否不相等,而不考虑它们的类型。如果两个变量的值不相等,则返回
true
,否则返回 false。 - $x != $y:这是使用双不等号(!=)作为比较操作符。它也比较两个变量的值是否不相等,但同时还会检查它们的类型是否不同。如果两个变量的值不相等或类型不同,则返回true,否则返回 false。因此,主要的区别在于类型检查方面。x <> y 只比较值是否相等,而 $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>";//分行
?>
注:运算符优先级不做阐述,小学生的问题