1楼:匿名用户
我是这么理解的:du
if($str==0),字符串zhi和数字比较是否相等dao, 相当于 把$str 字符串隐性转换为数字回,然后再比较,相当于 if( intval($str) == 0 ) 。if($str==0) 判断
答 和 if( intval($str) == 0 ) 是等价的,而和 if ($str) 是不一样的。if ($str) 可以判断 $str值有没有被初始化。有没有付值,只要付值,就返回true。
当然你也可以使用 $str="字符串";if($str===0) ,就是 判断 $str的数据类型 和值 都和0的值 数据类型一样,才可以返回true
2楼:php问答网
if($str=="0")
你这样,他就不会是ture了
字符串和整型不好对比.而且他会把字符串的第一个个转换.然后就为true了
这不是什么问题.你不要那么写就好了.
3楼:邵添别雅诗
将字符串和数字比较,php会试着把字符串转换成数据,由于无法将"字符串"
转换成数字,因此返回0。
你可以试一下
("10字符串"
==0)
它会返回false,因为将"10字符串"转换成数字时会返回10。
4楼:匿名用户
这是老问题了
之前在csdn跟人讨论过这个
你去看下手册字符串转数字的那个内容
应该内会明白吧
看到楼下容有人回答那个 我还是举个例子 然后楼主去看手册 自己思考$str = "25字符串"
此事$str==0 就会返回false
为什么?
还是那句话自己看手册字符串转整数的内容 我之前在别的地方说过很多 不想再说了
为什么php传递参数值为0时,empty判断参数为真
5楼:四舍**入
empty()函数是bai
用来测试变量是否已经配置du。若变zhi量已存在、非空字符串dao或者非零,则返回 false 值;反版之返回 true值。所以,权当字符串的值为0时,也返回true,就是执行empty内部的语句。
这就是陷阱。
如: 假设 $value = 0; 则empty($value)=false。
判断字符串是否为空,可以这么判断: if ($value=="") ...
6楼:拒绝自己成长
empty()函数是用来测试变量是否已经配置。若变量已存在、非空字符串或者非零,则返回 false 值;反之返回 true值。
回所以,当字符串的值为0时,也返回true,就是执行empty内部的语句。这就是陷阱。
如: 假设 $value = 0; 则empty($value)=false。
判断字符串是否为空,可以这么判断: if ($value=="") ...
* 格式:bool empty ( mixed var )
* 功能:检查一个变量是否为空
* 返回值答:
* 若变量不存在则返回 true
* 若变量存在且其值为""、0、"0"、null、、false、 array()、var $var; 以及没有任何属性的对象,则返回 ture
* 若变量存在且值不为""、0、"0"、null、、false、 array()、var $var; 以及没有任何属性的对象,则返回 false
* 版本:php 3, php 4, php 5
7楼:
empty这个函数本来就是验证是否为空,如果为空返回true,否则为false
为什么php中 echo ("00000"=="000000"); 返回的值为1? 五个0与六个0的字符串居然相等!
8楼:凡面郭达子
复对于比较运算符“==”,制如果比较一bai个数字和字符串du或者比较涉及到数字内容的字符zhi串,则dao字符串会被转换为数值并且比较按照数值来进行。
所以,如下字符串中,转换为数值之后相等而输出1。
echo("0"=="000000");//1
echo("00000"=="000000");//1
echo("12345"=="012345");//1
echo("10"=="1e1");//1
?>
而echo("12345n"=="012345n");
由于比较的表达式中两边都含有字母,所以均当做字符串来处理而没有进行转换,所以没有输出1。
另外,当其中的涉及到数字内容的字符串要进行转换的时候,其开始的值决定转换后的值,比如:
echo(12345=="012345我和我的小伙伴们都惊呆了。");//1
echo(12345=="01234n5");//不会输出1
echo("12345"=="012345我和小伙伴们都惊呆了n");//这样也不会输出1
9楼:匿名用户
的确是这样的。如果两个字符串都是纯数字,就当做是两个数字在比较。
如果至少一个字符串为非纯数字,会进行字符串比较。
如果一定要比较字符串,请使用strcmp()函数,不要直接比较。
望采纳!
10楼:伟少love静静
这个不是bug,是php类型比较规则规定的,你看看php类型比较就明白了
c++中,字符和字符串的区别是什么
1楼 柳生十连兵 字符串 就是把字符串起来 简单的说是一个字符数组。如 a 是个字符 abc 就是个字符串 c 中string和char的主要区别在哪? 2楼 匿名用户 a 是char a 是char string,这两者都是普通的字符和字符串,和c中没什么不同 3楼 匿名用户 1 char是字符类...
c++中,什么是将数字字符串转换成整数
1楼 匿名用户 整数指的是int long等,字符串是string。 比如int a 1 和string str 1 虽然你最后输出在屏幕上是一样的,都是1,但是在内存中的存储的asc2号码并不一样。要想转换的话,其实也简单, 就是当前字符减去 0 就行了 2楼 匿名用户 整数比如说1 2 3 4 ...
c++中怎么判断string类型的字符串变量是否为数字
1楼 庄政警 遍历每个字符copy,判断是否bai在 0 9 就好 include include using namespace std bool strisnum string s return true int main c 中怎么判断一个string类型的字符串变量是否为数字? 2楼 匿名用...