为什么输出是 'in'?
<?php
if (1=='1, 3')
{
echo "in";
}
?>
<?php
if (1=='1, 3')
{
echo "in";
}
?>
==
运算符会对两个值进行类型转换,以尝试使它们成为相同的类型。在您的示例中,它将把第二个值从字符串转换为整数,这个整数等于 1
。然后这显然等于你要匹配的值。'1'
,而不是一个整数,那么匹配将失败,因为双方都是字符串,所以它将进行字符串比较,它们是不同的字符串。===
,这可能是您要使用的运算符。由于PHP正在进行类型转换,它将一个字符串转换为整数,其方法是计算直到非数字值为止的所有数字。在您的情况下,这是子字符串('1')(因为,
是第一个非数字字符)。如果您的字符串以数字以外的任何内容开头,您将得到0。
if (1 == 1 || 1 == 3)
输出应该是:
in
我猜你想知道一个变量是否在一定范围内。
你可以使用 in_array
:
if (in_array(1, array(1, 3, 5, 6)))
echo "in";
if(in_array(1, array(1,3)) {
echo "in";
}