如何检查$ _GET是否为空?

Vam*_*a B 55 php get

如何检查是否$_GET为空?

Nik*_*kiC 119

你自己说,检查一下empty:

if (empty($_GET)) {
    // no data passed by get
}
Run Code Online (Sandbox Code Playgroud)

看,PHP非常简单.你可能只是写,你的想法;)

这种方法非常安全.!$_GET如果$_GET未设置(不可能,但可能),可能会给你一个未定义的变量E_NOTICE .

  • 不,你永远不想让你的代码给你一个通知.抛出任何类型错误的源代码总是被认为是错误的. (3认同)
  • 那么所有这些错误的目的是什么呢?有什么建议? (2认同)
  • 告诉你,你在编码时犯了一个错误.如果我得到一个解析错误,我可以纠正错误.如果我得到一个未定义的var/index通知,我可以纠正它.这就是目的.但是生产代码不应该抛出错误.(如果确实如此,他们应该被压制并记录下来.) (2认同)

小智 12

我想最简单的方法是不需要任何操作员

if($_GET){
//do something if $_GET is set 
} 
if(!$_GET){
//do something if $_GET is NOT set 
} 
Run Code Online (Sandbox Code Playgroud)

  • 给出的+1不需要使用empty().@premiso有任何现实的例子来证明为什么它更好? (3认同)

Pek*_*ica 11

只是为了提供一些变化:你可以检查

if ($_SERVER["QUERY_STRING"] == null)
Run Code Online (Sandbox Code Playgroud)

它与测试完全相同$_GET.


小智 7

<?php
if (!isset($_GET) || empty($_GET))
{
    // do stuff here
}
Run Code Online (Sandbox Code Playgroud)

  • `!isset($ _ GET)`这里没有必要``if(empty($ _ GET))`就够了 (8认同)
  • 仅供参考:$ _GET _can_未设置,但是以这种方式配置PHP非常罕见(参见`variables_order`) (2认同)
  • @Wrikken:我认为亚历山大没有解决这个问题.`empty` simple检查变量是否已设置,因此使用`isset`进行检查是多余的. (2认同)

You*_*nse 5

if (!$_GET) echo "empty";
Run Code Online (Sandbox Code Playgroud)

为什么需要这样的检查?

大声笑
你们太直接了。
不要冒犯但有时根本不介意
$_GET 是非常特殊的变量,不像其他变量。
它应该总是被设置。无需将其视为其他变量。当 $_GET 未设置并且是预期的 - 这是紧急情况,这就是发明的“未定义变量”通知