2012-09-19 65 views
9

我想检查URL中是否存在app参数,但没有任何值。

例子:

my_url.php?app 

我试图isset()empty(),但不起作用。我以前见过它,我忘了如何。

+1

与“”比较? – BSull

回答

19

空是正确的。你想同时使用设置和空一起

if(isset($_GET['app']) && !empty($_GET['app'])){ 
    echo "App = ".$_GET['app']; 
} else { 
    echo "App is empty"; 
} 
+1

如果您的“应用程序为空”将显示,如果它没有设置在第一个地方,我会在那里放一个elseif语句 – Scuzzy

+2

事实上,更准确的说法是: if(isset($ _ GET ['app']] )&&!empty($ _ GET ['app'])){ echo“App =”。$ _ GET ['app']; (isset($ _ GET ['app'])){ echo“App is empty”; } else { echo“App is not set”; } –

1
if(isset($_GET['app']) && $_GET['app'] == "") 
{ 

} 
5

empty应该是工作(if(empty($_GET[var]))...),因为它会检查以下内容:

下面的事情被认为是空的:

"" (an empty string) 
0 (0 as an integer) 
0.0 (0 as a float) 
"0" (0 as a string) 
NULL 
FALSE 
array() (an empty array) 
$var; (a variable declared, but without a value)

这里是您的选择:

is_null - 检测变量是否为NULL

if(is_null($_GET[var])) ... 

defined - 检查是否一个给定的命名常量存在

if(defined($_GET[var])) ... 
0

你可以简单地检查由array_key_exists('param', $_GET);

想象一下这是你的网址:http://example.com/file.php?param。它有param查询参数,但它没有值。所以它的价值实际上是null

array_key_exists('param', $_GET);返回true如果param存在;如果它根本不存在,则返回false