发表时间:2015-05-27来源:网络
疑问
首选,给出一个php的示例代码,如果你完全明白为什么会出现如下结果,就不需要再在这篇博客浪费时间了,这里是让php初学者注意一下可能会犯的错误
[php]
<?php
var_dump("abcdefg" == "0"); // bool(false)
var_dump("abdsafd" == 0); // bool(true)
<?php
var_dump("abcdefg" == "0"); // bool(false)
var_dump("abdsafd" == 0); // bool(true)
如果你不是太清楚上面的结果,那就跟着博客继续学习下去吧!
比较运算符
比较运算符,如同它们名称所暗示的,允许对两个值进行比较。
比较运算符 例子 名称 结果
$a == $b 等于 TRUE,如果$a等于$b
$a === $b 全等 TRUE,如果$a等于$b,并且它们的类型也相同
$a != $b 不等 TRUE,如果$a不等于$b
$a <> $b 不等 TRUE,如果$a不等于$b
$a !== $b 非全等 TRUE,如果$a不等于$b,或者它们的类型不同
$a < $b 小于 TRUE,如果$a严格小于$b
$a > $b 大于 TRUE,如果$a严格大于$b
$a <= $b 小于等于 TRUE,如果$a小于或者等于$b
$a >= $b 大于等于 TRUE,如果$a大于或者等于$b
注意:
如果比较一个整数和字符串,则字符串会被转换为整数
如果比较两个数字字符串,则作为整数比较
讲到这里,就可以说一下上面那个php代码了,var_dump("abcdefg" == "0")为false,是因为这是两个字符串比较,对应于c的strcmp函数,因此应该为false。然而,var_dump("abdsafd" == 0)为true,则需要学习一下字符串转换为整数的规则了
字符串转换为整数
当一个字符串被用在了一个数字的环境中,结果和类型如下:
如果字符串没有包含‘.’、'e'或'E',并且数字值符合整数类型的限定(PHP_INT_MAX定义的),这个字符串可被认定是一个integer,在其它情况下被认定为一个float
字符串的开始部分给定了它的值,如果字符串以合法的数字开始,这个数字就可直接使用。否则,值就是0.合法数值由符号,后面跟着一个或多个数字(可能有个小数点),再跟着可选的指数符号如'e'或'E',后面跟着一个或多个数字。
示例代码:
[php]
<?php
$foo = 1 + "10.5"; // $foo is float (11.5)
$foo = 1 + "bob-1.3e3"; // $foo is integer (1)
$foo = 1 + "bob3"; // $foo is integer (1)
$foo = 1 + "10 Small Pigs"; // $foo is integer (11)
$foo = 4 + "10.2 Little Piggies"; // $foo is float (14.2)
$foo = "10.0 pigs " + 1; // $foo is float (11)
$foo = "10.0 pigs " + 1.0; // $foo is float (11)
?>
<?php
$foo = 1 + "10.5"; // $foo is float (11.5)
$foo = 1 + "bob-1.3e3"; // $foo is integer (1)
$foo = 1 + "bob3"; // $foo is integer (1)
$foo = 1 + "10 Small Pigs"; // $foo is integer (11)
$foo = 4 + "10.2 Little Piggies"; // $foo is float (14.2)
$foo = "10.0 pigs " + 1; // $foo is float (11)
$foo = "10.0 pigs " + 1.0; // $foo is float (11)
?>
这里应该可以彻底解释var_dump("abcdefg" == 0)为true了,因为比较运算符首先将“abcdefg”强制转换为整数0,因为0==0为true了
上一篇:php图片验证码类
下一篇:PHP5+APACHE2.2配置
CI框架连接数据库配置操作以及多数据库操作
asp 简单读取数据表并列出来 ASP如何快速从数据库读取大量数据
C语言关键字及其解释介绍 C语言32个关键字详解
C语言中sizeof是什么意思 c语言里sizeof怎样用法详解
PHP中的魔术方法 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
PHP中的(++i)前缀自增 和 (i++)后缀自增
将视频设置为Android手机开机动画的教程
最简单的asp登陆界面代码 asp登陆界面源代码详细介绍
常用dos命令及语法
PHP中include和require区别之我见
国家政务服务平台官方版下载v2.1.8 安卓版
88.71MB |生活服务
HLA运动健康下载v1.0.3 最新版
262.61MB |生活服务
Kukukao下载v1.0.2 最新版
33.42MB |学习教育
33上门按摩官方版下载v3.2.7 安卓版
33.59MB |生活服务
33上门app(改名33上门按摩)下载v3.2.7安卓官方版
33.59MB |生活服务
好到达货车导航app下载v2.2.5.2 安卓版
59.27MB |旅游出行
南昌掌上城管app下载v1.2.34 安卓版
55.49MB |生活服务
芯兴遥控下载v1.0.6 最新版
59.4MB |系统工具
2014-09-05
2022-03-20
2022-03-21
2022-03-24
2014-09-05
2014-09-05
2015-07-05
2014-09-05
2022-03-21
2014-09-05