Q值。我得到以下代码的输出为"这是字符串"而不是"这不是一个字符串"为什么呢?
<?php
$abc=0;
if($abc == "str")
{
echo "This is string";
}
else
{
echo "This is not a string";
}
?>
答案 0 :(得分:3)
最好使用===
进行比较,它还会检查比较变量。
if($abc === "str")
{
echo "This is string";
}
else
{
echo "This is not a string";
}
这将按预期工作。
有关PHP类型比较表,请参阅here。在那里你看到&#34;松散的比较与==&#34;在...之间0
(int)和"php"
(字符串)将返回true
。这不是人们所期望的。
答案 1 :(得分:1)
使用如果您将数字与字符串进行比较或比较涉及数字字符串,则每个字符串都会转换为数字,并且数字会进行比较。
"str"
运算符将它们进行比较时, 0
会转换为==
。要使代码正常工作,您必须使用===
运算符。
当比较为===或!==时,不会发生类型转换,因为这涉及比较类型和值。
答案 2 :(得分:-1)
使用<?php
$abc=0;
if(is_string($abc))
{
echo "This is string";
}
else
{
echo "This is not a string";
}
?>
查找变量的类型是否为字符串
{{1}}