检查是否在GET中传递了任何变量

时间:2010-08-07 22:27:19

标签: php

我做了一些搜索而没有想出任何东西,我确信这很明显。

基本上我正在努力研究是否已经通过表单中的GET传递了任何内容。

我知道如何检查个别元素,但我只是想快速检查一下是否有任何传递

干杯

6 个答案:

答案 0 :(得分:9)

使用count($_GET)时要小心。如果您提交的表单包含空值,则仍会为字段创建密钥,而您的count()将大于0,empty($_GET)将为false。

<?php 
print_r($_GET);
?>

<form action="" method="get">
    <input type="text" name="name">
    <textarea name="mytext"></textarea>
    <input type="submit">
</form>

确保字段实际上不为空:

function ne($v) {
    return $v != '';
}

echo count($_GET);                     // prints 2
echo count(array_filter($_GET, 'ne')); // prints 0

答案 1 :(得分:7)

这应该做的工作:

if (!empty($_GET))
{
}

答案 2 :(得分:1)

if ( count($_GET) > 0 ) echo("I hear you!");

答案 3 :(得分:1)

if(empty($_GET)) { /* no parameters passed*/}

答案 4 :(得分:1)

只需通过count($ _ GET)检查$ _GET数组的长度。 如果没有通过它应该是0

答案 5 :(得分:0)

简单'只是':if($_GET){ /* parameters passed*/}(对于当前请求)用于检查GETPOST请求中是否传递了任何查询字符串。

这是因为布尔false上下文中的空数组为if($x) 请参阅:http://php.net/manual/en/types.comparisons.php

所以确实不需要count()empty()