PHP检查url参数是否存在


PHP check if url parameter exists

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

example/success.php?id=链接1

我用php抓取

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

然后根据参数显示内容的if语句

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

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

谢谢各位

使用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"]) : '';
if(isset($_GET['id']))
{
    // Do something
}

您想要类似的东西

以下是用于检查URL中是否存在"id"参数的PHP代码:

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

我希望它能帮助你。

不太清楚您所说的是什么函数,以及您是否需要两个单独的分支或一个。假设一:

将您的第一行更改为

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

我知道这是一个老问题,但由于php7.0,您可以使用null合并运算符(另一种资源)。

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

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

因此,如果设置了$_GET["id"],它将返回该值。如果没有,则返回回退。我发现这对$_POST、$_GET或任何传递的参数等非常有用

$slide = $_GET["id"] ?? '';
if (trim($slide) == 'link1') ...

为什么不把它简化为if($_GET['id'])呢。它将根据参数的存在状态返回true或false。