【问题标题】:PHP Fetch Name and Value FROM $_GETPHP 从 $_GET 获取名称和值
【发布时间】:2020-02-11 06:00:03
【问题描述】:

我正在尝试将简单的 if/elseif 条件转换为 case 条件,并且一次通过 img src 链接仅传递一个 $_GET 值,因此 foreach 循环是否必要和/或 case 是否有条件实际上需要在循环内吗?否则如何从 $_GET 中检索键名和值?

if (isset($_GET)) :
    foreach ($_GET as $GETkey=>$GETvalue):
        switch ($GETkey):
            case "AuthorID":
                $Year = date("Y");
                $AuthorName = DBLookup("SELECT `AuthorName` FROM authorbiographies WHERE `ID`=$GETvalue",$siteDB);
                $String = "Copyright © $Year\n$AuthorName";
                $FontSize = 10;
                $Angle = 0;
            break;
            case "CategoryID":
                $String = DBLookup("SELECT `CategoryName` FROM categories WHERE `ID`=$GETvalue",$siteDB);
                $FontSize = 15;
                $Angle = 0;
            break;
            case "Splash":
                $String = urldecode($GETvalue);
                $FontSize = 38;
                $Angle = 0;
            break;
        endswitch;
    endforeach;
endif;

它正在被调用:

 <img src="/internals/viewers/show_logo.php?AuthorID=1">

 <img src="/internals/viewers/show_logo.php?CategoryID=1">

例如。

【问题讨论】:

  • 代码应该可以工作,尽管它不是最好的编写方式。
  • 使用if (isset($_GET['AuthorID'])) ...
  • var_dump($_GET); 显示什么?
  • 如果var_dump($_GET) 没有打印任何内容,则说明正在删除 URL 参数。问题不在于脚本的这一部分。
  • 你的代码没问题。问题是数据丢失了。

标签: php foreach get key-value


【解决方案1】:

您可以使用key()current() 函数来获取数组的当前键和值。

对于具有单个元素的数组,这将返回第一个也是唯一一个键和值。不需要循环。

$GETkey = key($_GET);
$GETvalue = current($_GET);
switch ($GETkey) {
    ...
}

【讨论】:

  • 谢谢!这完美地工作,正是我需要知道的。由于某种原因,$_GET 现在也在工作。
猜你喜欢
  • 1970-01-01
  • 2017-04-10
  • 1970-01-01
  • 1970-01-01
  • 2015-02-24
  • 1970-01-01
  • 2014-02-24
  • 2012-05-14
  • 2013-07-16
相关资源
最近更新 更多