Yos*_*sef 4 php conditional-operator
为什么输出'在'?
<?php
if (1=='1, 3')
{
echo "in";
}
?>
Run Code Online (Sandbox Code Playgroud)
该==运营商不键入两个值转换,试图让它们是同一种类型.在您的示例中,它会将字符串中的第二个值转换为整数,该整数将等于1.这显然等于你匹配的值.
如果你的第一个值是一个字符串 - 即'1'用引号而不是整数,那么匹配就会失败,因为双方都是字符串,所以它会进行字符串比较,而且它们是不同的字符串.
如果你需要一个不进行类型转换的精确匹配运算符,那么PHP还提供了一个tripple-equal运算符===,这可能是你正在寻找的.
希望有所帮助.