简单的php问题 定义$a="0",$b="1",进行比较,然后定义$a=0,$b=1,进行比较,有什么区别?php解析器会把他们怎么处理,尤其是$a="0",这样是定义字符串,但是比较的时候把他们转换了吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $a="0", $b="1"的时候是按照字符串比的$a=0, $b=1是按照数字比的$a="0", $b=1的时候是将$b转换为字符串然后和$a比较 如果字符串是数值,php会将字符串转换成数值类型进行比较我正在使用《Csdn收音机》第一时间获取最新动态! $a = "5";$b = 5;echo ($a == $b) ? "Y" : "N";/*输出结果 Y*/因此 “如果字符串是数值,php会将字符串转换成数值类型进行比较” 我正在使用《Csdn收音机》第一时间获取最新动态! 我同意7楼的观点“如果字符串是数值,php会将字符串转换成数值类型进行比较”,而不是1楼说的“$a="0", $b=1的时候是将$b转换为字符串然后和$a比较”。理由如下:echo ('5' == 5) ? 'Y' : 'N'; // 输出为 Yecho ('5.0' == 5) ? 'Y' : 'N'; // 输出为 Yecho ('5.0' == '5') ? 'Y' : 'N';// 输出为 Y————————淘宝购物也能打折?看看咘唂网就知道了 ^_^ 喜欢这个签名档吗?你也可以制作自己的签名档! PHP手册上有这么一段话:PHP 的自动类型转换的一个例子是加号“+”。如果任何一个运算数是浮点数,则所有的运算数都被当成浮点数,结果也是浮点数。否则运算数会被解释为整数,结果也是整数。注意这并没有改变这些运算数本身的类型;改变的仅是这些运算数如何被求值。 根据这个可以理解为对比较来说, 也应该是先转换为整数因此1楼的是不正确的, 7楼的是正确的 不仅如此(不仅是因为有整数参与比较,才把字符串转为整数进行比较),请看我在10楼给出的代码,只要字符串的值符合“数值”的特征,就是先转换后再参与比较的,最明显的就是 '5.0' == '5'————————基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :) <?php$a=5;$b="5";var_dump($a);//int(5)echo "<br>";var_dump($b);//string(1) "5"echo "<br>";if ($a==$b) //ture{ echo "ture";}else{ echo "false";}echo "<br>";if ($a===$b) //注:这个结果返回false,会比较数据类型是否相等{ echo "ture";}else{ echo "false";}?> <?phpecho gettype(max("0",1));//返回integer,按照整型来处理echo gettype(max("0","1"));//返回string,按照字符串来处理 PHP中没有类型 . 类型随时都在变化的. $a=0,$b=1,这个可直接比,php代码对字符类型要求不强的 如何不让IE打开EXCEL文件,而是下载 安裝了 支持繁簡體的phpbb3.05論壇怎麼調出英文辦塊? 新手求助 网店系统Hishop.5.2.2安装到本地IIS5.1的问题 DOM模型和浏览器的渲染是否同一回事?已经知道各个浏览器对同样的html代码可能呈现出略微不一样的效果, 用过WordPress请进, php多表查询 急救 淘宝api一键同步商品到自己的店铺 有一段 imagick 的php 代码 文件乱码的问题 2次PHP开发的前期问题 PHP调用问题 满分求PHP按条件搜索后翻页的数据显示
$a=0, $b=1是按照数字比的
$a="0", $b=1的时候是将$b转换为字符串然后和$a比较
$a = "5";
$b = 5;
echo ($a == $b) ? "Y" : "N";/*
输出结果 Y
*/
因此 “如果字符串是数值,php会将字符串转换成数值类型进行比较” 我正在使用《Csdn收音机》第一时间获取最新动态!
echo ('5' == 5) ? 'Y' : 'N'; // 输出为 Y
echo ('5.0' == 5) ? 'Y' : 'N'; // 输出为 Y
echo ('5.0' == '5') ? 'Y' : 'N';// 输出为 Y————————
淘宝购物也能打折?看看咘唂网就知道了 ^_^
PHP 的自动类型转换的一个例子是加号“+”。如果任何一个运算数是浮点数,则所有的运算数都被当成浮点数,结果也是浮点数。否则运算数会被解释为整数,结果也是整数。注意这并没有改变这些运算数本身的类型;改变的仅是这些运算数如何被求值。
根据这个可以理解为对比较来说, 也应该是先转换为整数
因此1楼的是不正确的, 7楼的是正确的
————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
echo "<br>";
var_dump($b);//string(1) "5"
echo "<br>";if ($a==$b) //ture
{
echo "ture";
}else{
echo "false";
}echo "<br>";if ($a===$b) //注:这个结果返回false,会比较数据类型是否相等
{
echo "ture";
}else{
echo "false";
}
?>
<?php
echo gettype(max("0",1));//返回integer,按照整型来处理
echo gettype(max("0","1"));//返回string,按照字符串来处理
这个可直接比,php代码对字符类型要求不强的