PHP中当变量为0时,该变量同时也就•等于•false,那么如何区别0和false?这在有些条件语句中就很有用了,本文将举例说明.
首先看代码,本代码的功能是查找一个字符串中是否以某个词语开头
实例代码如下:
<?php $title = "Hello world."; $keyword = "you"; if (strpos($title, $keyword) == 0) { echo "正确"; } else { echo "错误"; } ?>
输出:正确
好像代码没错啊?为什么结果错了?查看帮助手册看到strpos()函数在字符串中查找词语的时候,如果存在该词语则返回该词语的索引位置,否则返回false,于是把代码做如下修改.
实例代码如下:
if(strpos($title , $keyword ) == 0) { echo "正确"; } else if(strpos($title , $keyword ) == false) { echo "错误"; }
输出:正确
怎么又是错的?原来PHP中当变量为0时,该变量同时也就•等于•false,那么如何区别0和false?其实很简单,把代码再修改一下:
实例代码如下:
if(strpos($title , $keyword ) === 0) { echo "正确"; } else if(strpos($title , $keyword ) === false) { echo "错误"; }
输出:错误
实例代码如下:
<?php /* * 测试boolean * 0 false */ $num = 0; $bTest1 = false; $bTest2 = true; $strTest2 = 'false'; if ($num == $bTest1) { echo ('数字0与false是可以相等的'); //显示 echo ("<br/>"); } if ($bTest1) { echo ('永不执行啊<br/>'); //不显示 } if (1) { echo ('会执行吗,<br/>'); //执行 } if ($bTest2) { echo ('我是老大我要执行<br/>'); //执行 } else { echo ('不要的都归我了哦<br/>'); } echo (false == 0); //显示1 表示相等 echo (true == 1); //显示1 表示相等 function testReturn() { echo ('aaaaa'); return; return 'bbbb'; echo ('cccc'); } //return 表示该函数的返回就是执行到这下面的都将不执行了,exit是推出程序 echo testReturn(); //调用该函数 将输出 'aaaa' 'bbbbb' ?>
很多时候false也等于0,当我们要返回的值中含有0的时候,例如对数字的查询就要注意了,可以用===来判断是否完全相等,
PHP 有一个 gettype() 函数,得到变量的类型.可以使用 === 运算符(看好了,有三个等号).和 == 运算符 的区别在于该运算符同时比较数据的值和类型.
当终止条件中涉及不同的变量类型时,通过使用 ===和 !==运算符进行强类型检查是很重要的.
本文地址:
转载随意,但请附上文章地址:-)