PHP检查url参数是否存在

时间:2013-08-16 10:27:33

标签: php url url-parameters

我有一个URL,我将参数传递给

  

示例/ success.php?ID = LINK1

我用php抓住它

$slide = ($_GET["id"]);

然后使用if语句显示基于参数

的内容
<?php  if($slide == 'link1') { ?>
   //content
 } ?>

只需要在PHP中知道怎么说,如果url param存在抓住它并执行if函数,如果它不存在则什么都不做。

谢谢大家

6 个答案:

答案 0 :(得分:88)

使用isset()

$matchFound = ( isset($_GET["id"]) && trim($_GET["id"]) == 'link1' );
$slide = $matchFound ? trim ($_GET["id"]) : '';

修改: 这是为了完整性而添加的。 php中的$_GET是一个保留变量,它是一个关联数组。因此,您也可以使用'array_key_exists(mixed $key, array $array)'。它将返回一个找到或不找到密钥的布尔值。所以,以下也可以。

$matchFound = ( array_key_exists("id", $_GET)) && trim($_GET["id"]) == 'link1' );
$slide = $matchFound ? trim ($_GET["id"]) : '';

答案 1 :(得分:47)

if(isset($_GET['id']))
{
    // Do something
}

你想要那样的东西

答案 2 :(得分:3)

目前尚不清楚你在谈论什么功能,以及你是否需要2个独立的分支机构。假设一个:

将第一行更改为

$slide = '';
if (isset($_GET["id"]))
{
    $slide = $_GET["id"];
}

答案 3 :(得分:2)

这是用于检查&#39; id&#39;的PHP代码。参数是否存在于URL中:

if(isset($_GET['id']))
{
   $slide = $_GET['id'] // Getting parameter value inside PHP variable
}

我希望它会对你有所帮助。

答案 4 :(得分:0)

为什么不将它简化为if($ _ GET [&#39; id&#39;])。它将根据参数的存在状态返回true或false。

答案 5 :(得分:0)

我知道这是一个老问题,但从 php7.0 开始,您可以使用 null coalescing operator (another resource)。

<块引用>

它类似于三元运算符,但在左侧操作数上的行为类似于 isset,而不仅仅是使用其布尔值。

$slide = $_GET["id"] ?? 'fallback';

所以如果设置了 $_GET["id"],它会返回值。如果不是,则返回回退。我发现这对 $_POST、$_GET 或任何传递的参数等非常有帮助

$slide = $_GET["id"] ?? '';

if (trim($slide) == 'link1') ...