Php 为什么会触发这种情况?
为什么条件被触发,我们看到“是”?为什么Php 为什么会触发这种情况?,php,conditional-statements,Php,Conditional Statements,为什么条件被触发,我们看到“是”?为什么'OMNOMNOM'==0?有什么问题吗 UPD: 如果我写If('qwe'==1),条件返回false;如果我写If('qwe'==0),条件返回true。。。为什么在整数中检查条件,而不是在字符串中检查条件?因为通过使用=PHP尝试将值强制转换为相同的类型(在本例中,这两个值似乎都是整数),如果使用===,则它不会强制转换,并且会关心类型(因此,要获得true,类型和值需要相等) 因此,尝试使用: $text = 'OMNOMNOM'; if($te
'OMNOMNOM'==0
?有什么问题吗
UPD:
如果我写
If('qwe'==1)
,条件返回false;如果我写If('qwe'==0)
,条件返回true。。。为什么在整数中检查条件,而不是在字符串中检查条件?因为通过使用=
PHP尝试将值强制转换为相同的类型(在本例中,这两个值似乎都是整数),如果使用===
,则它不会强制转换,并且会关心类型(因此,要获得true
,类型
和值
需要相等)
因此,尝试使用:
$text = 'OMNOMNOM';
if($text == intval($text))
echo 'yes';
else
echo 'no';
因为通过使用
=
PHP尝试将值强制转换为相同的类型(在本例中,它似乎都是整数),如果使用==
,则它不会强制转换,并且会关心类型(因此要获得真值
类型和值
需要相等)
因此,尝试使用:
$text = 'OMNOMNOM';
if($text == intval($text))
echo 'yes';
else
echo 'no';
您是否正在尝试确定字符串是否仅由数字组成?您最好查看以下内容:if(preg_match(“/^[0-9]*$/”,$text)){@Matt.C我已经使用了
ctype\u digit()
function,但之前我希望使用此问题中指定的方法…您是否试图确定字符串是否仅由数字组成?您最好查看类似if(preg_match(“/^[0-9]*$/”,$text)){@Matt.C我已经使用了ctype\u digit()
函数,但之前我想使用这个问题中指定的方法…我知道,但如果我写if('qwe'==1)
,条件返回false,如果我写if('qwe'==0)
,条件返回true…为什么条件检查为整数,而不是字符串?我认为这是PHP的默认行为。如果将任何字符串与整数进行比较,则PHP会将字符串转换为整数。也许我可以为您找到一个源代码。我知道,但如果我编写If('qwe'==1)
,条件返回false,如果我编写If('qwe'==0)
,条件返回true…为什么条件检查为整数,而不是字符串?我认为这是PHP的默认行为。如果将任何字符串与整数进行比较,则PHP会将字符串转换为整数。也许我可以为您找到源代码。