5

if ステートメントを書くときは、次のように変数をチェックします。

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

2 つの変数がこれと同様に設定されているかどうかを if ステートメントで確認するにはどうすればよいですか。

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

基本的に、if ステートメントで 2 つのことを一度にチェックするにはどうすればよいでしょうか。

4

7 に答える 7

11

制御構造論理演算子に関する PHP マニュアルを参照してください。

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

シングルを使用する&と、ビットごとの操作が行われますが、これは間違いなくあなたが望むものではありません。

and&&他の回答が示しているように、構文の同義語でもあります。

EDIT : コメントで指摘されているように、2 つの変数が 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

& (2 項 AND) ではなく && 演算子 (論理 AND) を使用してみてください。

したがって、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 に答える