本文最后更新于2019年11月21日,已超过一年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
php类型比较
在业务需求中,我们往往有比较变量的需求,通常有两种方式:松散比较
和严格比较
松散比较:使用两个等号“==”比较,只比较值,不比较类型
严格比较:使用三个等号“===”比较,除了比较值,也比较类型
举例
- <?php
- if(42 == "42") {
- echo '1、值相等(松散比较:值相等,但是类型不同,一个int一个string)';
- }
- if(42 === "42") {
- echo '2、类型相等';
- } else {
- echo '3、不相等(严格比较:值相同,但是类型不同,所以不相等)';
- }
- ?>
输出结果
- 1、值相等(松散比较:值相等,但是类型不同,一个int一个string)
- 3、不相等(严格比较:值相同,但是类型不同,所以不相等)
php中比较0、false、null
实例
- <?php
- echo '0 == false: ';
- var_dump(0 == false);
- echo '0 === false: ';
- var_dump(0 === false);
- echo PHP_EOL;
- echo '0 == null: ';
- var_dump(0 == null);
- echo '0 === null: ';
- var_dump(0 === null);
- echo PHP_EOL;
- echo 'false == null: ';
- var_dump(false == null);
- echo 'false === null: ';
- var_dump(false === null);
- echo PHP_EOL;
- echo '"0" == false: ';
- var_dump("0" == false);
- echo '"0" === false: ';
- var_dump("0" === false);
- echo PHP_EOL;
- echo '"0" == null: ';
- var_dump("0" == null);
- echo '"0" === null: ';
- var_dump("0" === null);
- echo PHP_EOL;
- echo '"" == false: ';
- var_dump("" == false);
- echo '"" === false: ';
- var_dump("" === false);
- echo PHP_EOL;
- echo '"" == null: ';
- var_dump("" == null);
- echo '"" === null: ';
- var_dump("" === null);
- ?>
输出结果
- 0 == false: bool(true)
- 0 === false: bool(false)
- 0 == null: bool(true)
- 0 === null: bool(false)
- false == null: bool(true)
- false === null: bool(false)
- "0" == false: bool(true)
- "0" === false: bool(false)
- "0" == null: bool(false)
- "0" === null: bool(false)
- "" == false: bool(true)
- "" === false: bool(false)
- "" == null: bool(true)
- "" === null: bool(false)
通过以上实例,我们不难看出松散比较和严格比较的区别:
- 松散比较:只要值或者数据类型相同,那么就返回true
- 严格比较:必须值&数据类型都相同,才会返回true
微信小程序
互联网开发,终身学习者,欢迎您的关注!