我有一个 URL,我将参数传递到其中
示例/success.php?id=link1
我用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
}
希望对你有帮助。
不太清楚您在谈论什么功能以及您是否需要 2 个独立的分支或一个。假设一:
将第一行更改为
$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。