簡體   English   中英

PHP - 獲取帶或不帶鍵的 URL 參數

[英]PHP - get URL param with or without key

我知道如何以笨拙冗長的方式執行此操作,但是是否有一種優雅的方法可以從 URL 中檢索單個參數,無論 URL 中是否存在鍵或索引頁? 即永遠不會有&secondparam=blah

$_GET["slug"]僅在 url 具有slug=foobar時才有效

例如,為這些 URL 中的任何一個返回foobar

site.com/page/index.php?slug=foobar

site.com/page/index.php?foobar

site.com/page/?slug=foobar

site.com/page/?foobar

這是我的解決方案:

$slug = $_GET['slug'] ?? reset(array_keys($_GET));

var_dump($slug);

當未找到slug時,它將返回第一個參數名稱。

請注意,當 URL 參數 'slug' 沒有值時,它將是一個空字符串,即: ?slugfalse如果根本找不到參數。

也許這更一致一點:

// edit: added redundant parentheses to make operator precedence more clear
$slug = ($_GET['slug'] ?? reset(array_keys($_GET))) ?: null;

var_dump($slug);

...因為它將為前面提到的兩個邊緣情況返回null

$_GET 實際上是一個包含所有這些信息的數組。

只需使用 if 語句

if(empty($_GET)) {
    continue
}
<?php

function reader()
{
    foreach($_GET as $key => $val)
    {
        if( ! empty($val))
        {
            return $val;
        }
        return $key;
    }
}

echo reader();
?>

解釋:首先返回 $value。 如果不為空,則返回該 $key

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM