假设我有以下url: example.php?grab=1,3&something=...
grab
有两个值,我如何将其转换为条件if语句。例如,如果count
是一个变量,而您想要计算count
是否等于grab
中的一个值。
$grab = $_GET["grab"];
$count = 4;
if($count == $grab(values)) {
alert("True");
}
如果始终是,
粘合值,只是explode
它们,那将它们变成array
。然后使用您的常驻数组函数进行检查。在这个例子中,in_array
:
if(!empty($_GET['grab'])) {
$grab = $_GET["grab"];
$count = 4;
$pieces = explode(',', $grab);
if(in_array($count, $pieces)) {
// do something here if found
}
}
旁注:如果你想把你的url设计成这样:
example.php?grab[]=1&grab[]=3&something
你根本不需要引爆它。你可以直接获取这些值,然后直接使用in_array
。
上面的例子grab
已经返回了一个数组:
if(!empty($_GET['grab'])) {
$grab = $_GET["grab"];
$count = 4;
if(in_array($count, $grab)) {
// do something here if found
}
}
方法#1:重新格式化URL并使用PHP in_array()
为什么不重新格式化你的url像这样:example.php?grab[]=1&grab[]=3&something=...
自动返回grab
值作为一个数组在PHP?
然后像这样做:
if(isset($_GET['grab']) && in_array(4, $_GET['grab'])) {
// do something
}
方法#2:将字符串分割成数组并使用PHP in_array()
如果你不希望重新格式化你的url,然后简单地分割字符串成一个数组使用php的爆炸函数,检查是否存在的值,例如:
if(isset($_GET['grab'])) {
$grab_array = explode(",", $_GET['grab'])
if(in_array(4, $grab_array)) {
// do something
}
}
方法3:使用正则表达式
您也可以使用正则表达式来检查匹配