5

当我写一个 if 语句时,我让它检查一个变量,如下所示:

if(isset($_GET['username']){
 echo "set";
 } else {
 echo "unset";
}

我怎样才能让我的 if 语句来检查两个变量是否设置与此类似:

if(isset($_GET['username'] & $_GET['firstname'])){
 echo "set";
 } else {
 echo "unset";
}

所以基本上我如何一次检查 if 语句中的两件事?

4

7 回答 7

11

查看有关控制结构逻辑运算符的 PHP 手册:

if(isset($_GET['username']) && isset($_GET['firstname'])) {
    echo "set";
} else {
    echo "unset";
}

使用 single&正在执行按位运算,这肯定不是您想要的。

and&&正如其他答案所示,它也是语法的同义词。

编辑:正如评论中所指出的,您可以通过将两个变量都传递给 isset 函数来检查它们是否被 isset。但是,如果您想要执行其他类型的操作,则需要执行上面的逻辑运算符。

于 2009-04-20T21:20:53.850 回答
7
if ( isset($_GET['username'], $_GET['firstname']) ) {
    echo 'Set!';
}

isset接受多个参数,如果提供了多个参数,则仅当设置了所有参数时 isset() 才会返回 TRUE。评估从左到右进行,并在遇到未设置的变量时立即停止。

于 2009-04-21T02:21:04.923 回答
2
if ( isset($_GET['username']) && isset($_GET['firstname']) )
于 2009-04-20T21:22:23.300 回答
1

尝试使用 && 运算符(逻辑与)而不是 &(二进制与)

因此,如果 isset 对两者都返回 true,则 if 返回 true,否则 if 将返回 false。

于 2009-04-20T21:22:04.627 回答
1

是的,或者

echo ( (isset($_GET['username']) && isset($_GET['firstname'])) ? "set" : "unset" );

于 2009-04-20T21:24:39.600 回答
0
if (isset($_GET['username']) AND isset($_GET['firstname']))
{
    echo "set";
}
else
{
    echo "unset";
}
于 2009-04-20T21:20:44.180 回答
0
if (isset($_GET['username']) && isset($_GET['firstname']))
{ 
    echo "set"; 
} 
else 
{ 
    echo "unset"; 
}

供参考:PHP 的运算符

于 2009-04-20T21:22:03.410 回答