PHP中重要的比较运算符及其用法是什么
Admin 2022-09-21 群英技术资讯 482 次浏览
运算符是告诉编译程序执行特定算术或逻辑操作的符号,通常与操作数一起构成一个表达式,我们经常看到它会参与数学运算或逻辑运算。PHP也包涵了很多的运算符,这篇文章详细解读一下其中很重要的比较运算符。
如同它们名称所暗示的,允许对两个值进行比较。比较运算符有如下几个:
1) $a > $b 大于:如果 $a 严格大于$b,则返回TRUE
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(同上)
7) $a == $b 等于:如果 $a等于 $b,则返回TRUE
8) $a === $b 全等于:如果 $a等于 $b,并且它们的类型也相同,则返回TRUE
9) $a !== $b 不全等于:如果 $a 不等于 $b,或者它们的类型不同,则返回TRUE
其中,我们要重点区分一下“等于”和“全等于”,$a == $b只是对两个变量的值进行了比较运算,而全等于要对运算符两边的表达式同时进行值的比较和数据类型的比较,只有两边的值都相等,运算结果才是“真”。结合“不全等”运算符举例来说,$a = 2; var_dump($a!==2);这个表达式返回值是“假”,因为2是等于2的。另外,$a = 2;是整型而var_dump($a!==2);里的2也是整型,但运算符是不全等于"!=="所以结果是假,因为2是等于2的。反过来如果是这样$a = 2; var_dump($a!=='2');运算结果就是“真”的,因为2不等于'2',后面的'2'是一个字符串的'2',即不全等于不仅仅只是比较变量值,还要对变量的数据类型进行比较。
如果PHP比较运算符比较一个整数和字符串,则字符串会被转换为整数后比较。如果比较两个数字字符串,则会把它们作为整数比较,另外此规则也适用于 switch 语句。
比如:
var_dump(0 == "a"); // 返回TRUE,"a"被转为0
var_dump("1" == "01"); // 返回TRUE,当做整数处理
string或null和string的比较:将NULL 转换为 "",进行数字或字符串的比较
bool或null间的比较:转换为bool,FALSE < TRUE
object内置类可以定义自己的比较,不同类不能比较,相同类则比较属性
string,resource 或 number间的比较:将字符串和资源转换成数字,按普通数学比较
array间的比较:具有较少成员的数组较小,如果运算数 1 中的键不存在于运算数 2 中则数组间无法比较,需要逐个值比较(见如下代码)
array和任何其它类型比较:array 总是更大
object和任何其它类型比较:object 总是更大
数组比较代码:
function standard_array_compare($op1, $op2)
{
if (count($op1) < count($op2)) { //具有较少成员的数组较小
return -1; // $op1 < $op2
} elseif (count($op1) > count($op2)) {
return 1; // $op1 > $op2
}
foreach ($op1 as $key => $val) {
if (!array_key_exists($key, $op2)) {
return null;
} else if ($val < $op2[$key]) {
return -1;
} elseif ($val > $op2[$key]) {
return 1;
}
}
return 0; // $op1 == $op2
}
表达式 (expr1) ? (expr2) : (expr3) 当表达式expr1 的值为 TRUE 时的值为expr2,当表达式 expr1 的值为 FALSE 时的值为expr3。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
首先自定义Command,在命令行下执行php artisan swoole start,开启Swoole服务。然后自定义handler,再利用connection_info函数获取客户端的IP地址和端口,用fsockopen直接发送数据。
在web开发中,如果想要获取用户提交的信息,往往需要使用到表单。利用一个form表单给用户展示需要填写的信息,然后用户输入信息后提交表单;表单提交数据后就需要获取到数据进行处理。那么怎么才能快速获取表单数据呢?下面介绍一下。
注意,当负载调度算法为ip_hash时,后端服务器在负载均衡调度中的状态不能是weight和backup。下文有详细的介绍,小编觉得挺实用的,对大家学习或工作或许有帮助,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
序列化是将对象状态转换为可保持或可传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。将对象的状态信息转换为可以存储或传输的窗体的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。通常,对象实例的所有字段都会被序列化,这意味着数据会被表示为实例的序列化数据。这
Laravel实现自动加载类的方法是什么?这篇文章给大家分享的是有关Laravel实现自动加载类的内容,以下代码是个人经验,需要的朋友可以借鉴参考,希望能飞大家学习或工作带来启发。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008