PHP if或语句未按预期工作
我试图循环使用我的$u POST变量并显示只有key=lap*的数据。这是我目前掌握的代码PHP if或语句未按预期工作,php,if-statement,logical-operators,Php,If Statement,Logical Operators,我试图循环使用我的$u POST变量并显示只有key=lap*的数据。这是我目前掌握的代码 foreach($_POST as $key=>$val) { if($key != "time" || $key != "avgspd" || $key != "kartno") { echo $key . "<br>"; } } 如您所见,它仍然显示键avgspd、kartno和time。奇怪且令人困惑的是,如果我将代码更改为: foreac
foreach($_POST as $key=>$val)
{
if($key != "time" || $key != "avgspd" || $key != "kartno")
{
echo $key . "<br>";
}
}
如您所见,它仍然显示键avgspd
、kartno
和time
。奇怪且令人困惑的是,如果我将代码更改为:
foreach($_POST as $key=>$val)
{
if($key == "time" || $key == "avgspd" || $key == "kartno")
{
echo $key . "<br>";
}
}
这没有任何意义。如果我检查键是否不等于time
,avgspd
或kartno
它会显示所有键,但当我说它只显示键“time”、“avgspd”或“kartno”时,它会按预期工作!这是怎么回事?我需要做什么来修复它。是以前的代码导致了错误吗?如果是这样,这是我的代码
Index.php
这总是正确的:
if($key != "time" || $key != "avgspd" || $key != "kartno")
你的意思是:
if($key != "time" and $key != "avgspd" and $key != "kartno")
您可以将其重写为:
if(! in_array($key,array("time","avgspd","kartno")))
这总是正确的:
if($key != "time" || $key != "avgspd" || $key != "kartno")
你的意思是:
if($key != "time" and $key != "avgspd" and $key != "kartno")
您可以将其重写为:
if(! in_array($key,array("time","avgspd","kartno")))
我相信您正在寻找&&
。否则我会错过什么
foreach($_POST as $key=>$val)
{
if($key != "time" && $key != "avgspd" && $key != "kartno")
{
echo $key . "<br>";
}
}
我相信您正在寻找&&
。否则我会错过什么
foreach($_POST as $key=>$val)
{
if($key != "time" && $key != "avgspd" && $key != "kartno")
{
echo $key . "<br>";
}
}
给你:
foreach($_POST as $key=>$val)
{
if($key != "time" && $key != "avgspd" && $key != "kartno")
{
echo $key . "<br>";
}
}
foreach($\发布为$key=>$val)
{
如果($key!=“time”&&$key!=“avgspd”&&&$key!=“kartno”)
{
回声$key.“
”;
}
}
解释:如果你把OR语句放在这里,它会一直打印出来,因为你基本上告诉你的程序如果它不同于“time”或“avgspd”,就要打印它。“时间”与“avgspd”不同,所以它会打印出来。给你:
foreach($_POST as $key=>$val)
{
if($key != "time" && $key != "avgspd" && $key != "kartno")
{
echo $key . "<br>";
}
}
foreach($\发布为$key=>$val)
{
如果($key!=“time”&&$key!=“avgspd”&&&$key!=“kartno”)
{
回声$key.“
”;
}
}
解释:如果你把OR语句放在这里,它会一直打印出来,因为你基本上告诉你的程序如果它不同于“time”或“avgspd”,就要打印它。“时间”和“avgspd”不同,所以它会打印。问题是您的预期输出是什么?(顺便说一句:很好的配置文件图片:)第一个if语句是:如果值不等于:时间,它将同时输入avgspd和kartno
。(因此,正如您可能看到的,一个值等于3个不同的值是不可能的)第二个if语句:如果它等于3个值中的一个,则输入if语句。我猜您可能想做的是说:如果它不是三个值之一,即:$key!=“val1”&&$key!=“val2”…
@Rizier123我希望它显示以“lap”开头的按键。你在问题中说过吗!:P永远住在候机楼。谁需要GUI!哈哈,为什么MS-DOS的时代消失了?哈哈。假设ArchLinux更好!:)问题是您的预期输出是什么?(顺便说一句:很好的配置文件图片:)第一个if语句是:如果值不等于:时间,它将同时输入avgspd和kartno
。(因此,正如您可能看到的,一个值等于3个不同的值是不可能的)第二个if语句:如果它等于3个值中的一个,则输入if语句。我猜您可能想做的是说:如果它不是三个值之一,即:$key!=“val1”&&$key!=“val2”…
@Rizier123我希望它显示以“lap”开头的按键。你在问题中说过吗!:P永远住在候机楼。谁需要GUI!哈哈,为什么MS-DOS的时代消失了?哈哈。假设ArchLinux更好!:)哇,我被打得很惨,酷。谢谢你,如果从圈开始!这就是我想做的,但我不确定我能不能。哇,我被打得很惨。酷。谢谢你,如果从圈开始!这就是我想做的,但我不确定我是否能做到。