PHP检查url参数是否存在

问题描述 投票:0回答:6

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

示例/success.php?id=link1

我用php来抓取

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

然后是一个if语句,根据参数显示内容

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

只需要知道在 PHP 中怎么说,如果 url 参数存在则抓取它并执行 if 函数,如果不存在则不执行任何操作。

php url url-parameters
6个回答
132
投票

使用 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"]) : '';

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

你想要这样的东西


10
投票

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

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

希望对你有帮助。


4
投票

不太清楚您在谈论什么功能以及您是否需要 2 个独立的分支或一个。假设一:

将第一行更改为

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

2
投票

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

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

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

因此,如果设置了

$_GET["id"]
,它将返回该值。如果不是,则返回后备。我发现这对于 $_POST、$_GET 或任何传递的参数等非常有帮助

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

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

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.