Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么会触发这种情况?_Php_Conditional Statements - Fatal编程技术网

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会将字符串转换为整数。也许我可以为您找到源代码。