当前位置:首页 > PHP教程 > php应用 > 列表

php中怎么区别false与0

发布:smiling 来源: PHP粉丝网  添加日期:2014-03-17 14:37:51 浏览: 评论:0 

PHP中当变量为0时,该变量同时也就“等于”false,那么如何区别0和false?这在有些条件语句中就很有用了,本文将举例说明.

首先看代码,本代码的功能是查找一个字符串中是否以某个词语开头

实例代码如下:

  1. $title = "Hello world."
  2. $keyword = "you"
  3. if(strpos($title , $keyword ) == 0) { 
  4.     echo "正确"
  5. else { 
  6.     echo "错误"

输出:正确

好像代码没错啊?为什么结果错了?查看帮助手册看到strpos()函数在字符串中查找词语的时候,如果存在该词语则返回该词语的索引位置,否则返回false,于是把代码做如下修改.

实例代码如下:

  1. if(strpos($title , $keyword ) == 0) { 
  2.     echo "正确"
  3. else if(strpos($title , $keyword ) == false) { 
  4.     echo "错误"

输出:正确

怎么又是错的?原来PHP中当变量为0时,该变量同时也就“等于”false,那么如何区别0和false?其实很简单,把代码再修改一下:

实例代码如下:

  1. if(strpos($title , $keyword ) === 0) { 
  2.     echo "正确"
  3. else if(strpos($title , $keyword ) === false) { 
  4.     echo "错误"

输出:错误

实例代码如下:

  1. <?php 
  2. /* 
  3.  * 测试boolean 
  4.  * 0 false 
  5.  */ 
  6.  $num = 0; 
  7.  $bTest1 = false; 
  8.  $bTest2 = true; 
  9.  $strTest2 = 'false'
  10.  if($num == $bTest1
  11.  { 
  12.   echo ('数字0与false是可以相等的');//显示 
  13.  echo ("<br/>"); 
  14.  } 
  15.  if($bTest1
  16.  { 
  17.   echo('永不执行啊<br/>');//不显示 
  18.  } 
  19.  if(1) 
  20.  { 
  21.   echo('会执行吗,<br/>');//执行 
  22.  } 
  23.  if($bTest2
  24.  { 
  25.   echo('我是老大我要执行<br/>');//执行 
  26.    
  27.  } 
  28.  else
  29.   echo('不要的都归我了哦<br/>'); 
  30.  } 
  31.  echo (false == 0);//显示1 表示相等 
  32.  echo (true == 1);//显示1 表示相等 
  33. function testReturn () 
  34.  echo('aaaaa'); 
  35.  return
  36.  return 'bbbb'
  37.  echo('cccc'); 
  38. //return 表示该函数的返回就是执行到这下面的都将不执行了,exit是推出程序 
  39. echo testReturn();//调用该函数 将输出 ‘aaaa' ’bbbbb'  
  40. ?> 

很多时候false也等于0,当我们要返回的值中含有0的时候,例如对数字的查询就要注意了,可以用===来判断是否完全相等,

PHP 有一个 gettype() 函数,得到变量的类型.可以使用 === 运算符(看好了,有三个等号).和 == 运算符 的区别在于该运算符同时比较数据的值和类型.

当终止条件中涉及不同的变量类型时,通过使用 ===和 !==运算符进行强类型检查是很重要的.

Tags: strpos

分享到: