我一直坐在这个问题的最后一个小时.我有两个if语句(出于测试目的,它们都是IF语句,而不是IF和ELSE IF语句.代码运行错误的IF语句,就像它是真的一样.代码:
<?php
$sth = $pdo->query("SELECT * FROM myDBTable WHERE alien1='$idkod' OR alien2='$idkod'");
$result = $sth->fetchAll();
if(!$result)
{
echo "No data";
}
else
{
foreach($result as $row)
{
$alien1 = $row['alien1'];
$alien2 = $row['alien2'];
if($idkod == $alien1)
{
echo $idkod . "==" . $alien1;
}
if($idkod == $alien2)
{
echo $idkod . "==" . $alien2;
}
}
}
?>
Run Code Online (Sandbox Code Playgroud)
这将在屏幕上显示以下文本:1234567891234567891234567 == 1234567891234567891234567 1234567891234567891234567 == 1234567891234567891234568
显然,第二个文本不应该存在,因为声明不正确.
==在测试相等性时忽略类型.在这种情况下,它将假设两个字符串都是数字并转换它们.这意味着这将转变为:
9223372036854775807 == 9223372036854775807 //Max int val. Will be different on different systems.
Run Code Online (Sandbox Code Playgroud)
=== 将确保两个参数都是相同的类型,并且不会尝试强制制作
'1234567891234567891234567' === '1234567891234567891234568';
Run Code Online (Sandbox Code Playgroud)
给出预期的结果.
PHP平等有时是古怪的.
| 归档时间: |
|
| 查看次数: |
152 次 |
| 最近记录: |