数据类型的比较
虽然 PHP 是弱类型语言,但也需要明白变量类型及它们的意义因为我们经常需要对 PHP 变量进行比较,包含松散和严格比较。
-
松散比较:使用两个等号 == 比较,只比较值,不比较类型。
-
严格比较:用三个等号(全等) === 比较,除了比较值,也比较类型。
例如,"42" 是一个字符串而 42 是一个整数。false 是一个布尔值而 "false" 是一个字符串。
<?phpif(42=="42") {echo'1、值相等';}echoPHP_EOL; // 换行符if(42==="42") {echo'2、类型相等';} else {echo'3、类型不相等';}?>
比较undefined、 0、false、null、空值
isset() is_null() empty()的区别
isset()
和 is_null()
都用于判断变量的状态,但它们的功能和行为是不同的。
isset()
函数判断变量是否 存在 且 值不为 null。
is_null()
函数判断变量的值是否为 null,如若变量未定义则返回true。
empty()
函数判断一个变量是否是“空”的。判定为“空”的情况包括:
""
(空字符串)
0
(整数 0)
"0"
(字符串 0)nullfalse
array()
(空数组)未定义变量
<?php$a=null;$b=0;var_dump(isset($a)); // false(因为 $a 是 null)var_dump(isset($b)); // true($b 存在且不为 null)var_dump(isset($c)); // false($c 未定义)var_dump(is_null($a)); // true(因为 $a 是 null)var_dump(is_null($b)); // false($b 存在且不为 null)var_dump(is_null($c)); //true($c 未定义)//empty() 不会报错,即使变量未定义,也会安全地返回 truevar_dump(empty($a)); // true(因为 $a 是 null)var_dump(empty($b)); // true($b 存在且为0)var_dump(empty($c)); //true($c 未定义)?>
0x0 每日资源分享
原文始发于微信公众号(风铃情报站):PHP基础-比较
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论