PHP 检查 url 参数是否存在

我有一个 URL,我传递参数进去

Example.php? id = link1

我用 php 抓住它

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

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

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

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

谢谢,伙计们

204760 次浏览

使用 ()

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

编辑: 这是为了完整性而添加的。Php 中的 $_ GET保留变量,也就是 关联数组。因此,您也可以使用 ’array _ key _ vis (混合 $key,array $array)’。它将返回一个布尔值,说明是否找到了密钥。所以,下面的内容也可以。

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

目前还不清楚您所说的是什么功能,以及是否需要两个独立的分支或一个分支。假设一:

将第一行更改为

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

你想要那样的东西

下面是检查“ id”参数是否存在于 URL 中的 PHP 代码:

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

我希望这能帮到你。

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

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

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

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

因此,如果设置了 $_GET["id"],它将返回值。如果没有,则返回备用方案。我发现这对于 $_ POST、 $_ GET 或任何传递的参数等都非常有用

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


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