Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何检查$\u GET是否为空?_Php_Get - Fatal编程技术网

Php 如何检查$\u GET是否为空?

Php 如何检查$\u GET是否为空?,php,get,Php,Get,如何检查$\u GET是否为空?我想不需要任何运算符的最简单方法是 <?php if (!isset($_GET) || empty($_GET)) { // do stuff here } if($_GET){ //do something if $_GET is set } if(!$_GET){ //do something if $_GET is NOT set } 你为什么需要这样的支票 lol 你们太直率了。 不要生气,但有时一点也不介意 $\u GET是非

如何检查
$\u GET
是否为空?

我想不需要任何运算符的最简单方法是

<?php
if (!isset($_GET) || empty($_GET))
{
    // do stuff here
}
if($_GET){
//do something if $_GET is set 
} 
if(!$_GET){
//do something if $_GET is NOT set 
} 
你为什么需要这样的支票

lol
你们太直率了。
不要生气,但有时一点也不介意
$\u GET是非常特殊的变量,与其他变量不同。
它应该总是固定的。无需将其视为其他变量。
如果未设置$\u GET,并且它是预期的-这是紧急情况,这就是为

发明的“未定义变量”通知,我将使用以下if语句,因为它更易于阅读(并在将来修改)


你自己说的,检查一下:

看,PHP非常简单。你可以简单地写下你的想法;)

这种方法相当安全<代码>$_GET
如果未设置(
$\u GET
不可能,但可能),则可能会给您一个未定义的变量E\u通知。

很简单

if (empty($_GET)) {
    // $_GET is empty
}

这里提供一些变化:您可以检查

if ($_SERVER["QUERY_STRING"] == null)

它与测试
$\u GET
完全相同

这里有3种不同的方法来检查这一点

<?php
//Method 1
if(!empty($_GET))
echo "exist";
else
echo "do not exist";
//Method 2
echo "<br>";
if($_GET)
echo "exist";
else
echo "do not exist";
//Method 3
if(count($_GET))
echo "exist";
else
echo "do not exist";
?>



!isset($\u-GET)
在这里是不必要的,如果(empty($\u-GET))
足够,仅供参考:$\u-GET可以取消设置,但是以这种方式配置PHP是非常罕见的(请参见
变量\u-order
)@Wrikken:我认为Alexander没有解决这个问题
empty
simple会自行检查变量是否已设置,因此使用
isset
进行检查是多余的。啊,是的,忘记
empty
确实是一种语言构造。
if(!empty($\u GET)){}
更易于阅读
empty()
如果数组不包含项,则返回
TRUE
。如果$\u GET是字符串怎么办?还是一个物体?我偶然发现脚本把$\u GET搞砸了,我通常会检查变量是否是我“知道”应该是的类型……这很简单。请避免使用这样的脚本:)老实说,您的代码太复杂了。我想您从来都不需要集成一些php脚本/系统,而不修改它们,而是试图阻止它们在同一个cron作业或网页中使用时造成严重破坏。这可能有点过分,但我晚上睡得很好。如果其他任何人(通过url、ini_集或其他任何方式)可以修改所有变量,我通常会在使用它们之前对它们进行清理、验证和检查。我会用所有可能的信息记录任何意外的输入(比如$u GET不是数组),这样我可以在以后重新创建它来修复任何bug或特殊情况…可能会感兴趣@弗兰克,这是真的。。。当一切顺利的时候。但是,如果$u GET碰巧没有设置,您会期望什么呢?这不是这样一个通知的唯一目的吗?不,你永远不想让你的代码给你一个通知。抛出任何类型错误的源代码总是被认为是不好的。那么所有这些错误的目的是什么呢?有什么建议吗?告诉你,你在编码时犯了一个错误。如果出现解析错误,我可以更正错误。如果我收到未定义的var/指数通知,我可以更正它。这就是目的。但是生产代码不应该抛出错误。是的,收到通知总是不好的,因为它告诉你你做错了什么事。+1我也有同样的想法,但不确定你需要检查什么。反对
!isset
null
'
null
在这里有效吗,你测试过了吗?@nikic-yup,测试过并有效。因为它来自Apache,所以即使它是空的,也会一直被设置,所以不需要进行
array\u key\u exists()
检查。@马里奥有什么例子可以演示吗?@nikic请注意,你会被告知那次可怕的破坏行为!还有什么能更好?这就是错误消息的目的——告诉你这些恶意的程序员!我已经告诉你三次了!用户会向你投诉,你来查看日志-瞧!有一个问题-$\u GET未设置!现在,我在$\u GET、$\u REQUEST和$\u POST(强制输入过滤)周围使用对象样式包装器。但这是一个非常特殊的情况,那些“注意”的空()人也会失败。@niki我不是在说你的经历。我说的正是这个问题的例子。我坚持认为,不存在需要使用empty或isset.+1的合理情况,因为我觉得这是应该触发通知的情况。对于希望在web环境中运行的脚本,这将是一个值得出错的异常情况,因为所有可能的原因都非常罕见。-1因为它可能引发通知错误。使用empty进行测试是一个更好的选择。+1表示无需使用empty()@普莱米索有没有真实的例子来证明为什么它更好?上校,不,我实际上没有。但我也可以问你为什么你的解决方案“更好”,如果你能给我提供现实生活中为什么你的解决方案更好的例子,真正的答案是两者都是有效的(在我模糊的测试之后)。所以,是的,我不该投否决票,如果用户修改了这个,我会切换它。归结起来就是偏好,我更喜欢用空的。我能给出的唯一原因是empty检查一个项目是否为空。考虑到未设置$\u GET从var\u转储返回数组(0),在我看来,empty似乎是一个更好的选择。它应该发出通知。
if (empty($_GET)) {
    // $_GET is empty
}
if ($_SERVER["QUERY_STRING"] == null)
<?php
//Method 1
if(!empty($_GET))
echo "exist";
else
echo "do not exist";
//Method 2
echo "<br>";
if($_GET)
echo "exist";
else
echo "do not exist";
//Method 3
if(count($_GET))
echo "exist";
else
echo "do not exist";
?>