68

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

示例/success.php?id=link1

我用php来抓取它

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

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

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

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

多谢你们

4

6 回答 6

112

使用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"]) : '';
于 2013-08-16T10:30:10.803 回答
64
if(isset($_GET['id']))
{
    // Do something
}

你想要这样的东西

于 2013-08-16T10:30:46.623 回答
9

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

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

我希望它会帮助你。

于 2017-04-28T16:06:11.917 回答
3

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

将您的第一行更改为

$slide = '';
if (isset($_GET["id"]))
{
    $slide = $_GET["id"];
}
于 2013-08-16T10:30:45.237 回答
1

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

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

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

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

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

if (trim($slide) == 'link1') ...
于 2021-01-07T01:38:31.153 回答
0

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

于 2017-10-11T00:35:47.420 回答