0

A が true の場合は B と C を実行し、そうでない場合は D と E を実行する条件文を適切に作成するにはどうすればよいですか。

if (empty($A)) { B=0 AND C=0; }
  else {D=X AND E=Y; }

一般的に、それは正しく見えますか?

これが私の実際のコードです:

if (empty($_FILES['file']['name'])) {
$filelink = '' AND $filetext = '';
} else {
$filelink = mysql_real_escape_string($location) AND
$filetext = 'Open File';
}
4

4 に答える 4

2

それが中括弧の目的です。彼らはブロックを作成します。そのブロックにあるものは何でも実行されます。同じブロック内に必要な数のステートメントを入れることができます。

if (empty($_FILES['file']['name'])) {
    $filelink = '';
    $filetext = '';
} else {
    $filelink = mysql_real_escape_string($location);
    $filetext = 'Open File';
}
于 2013-02-15T16:41:57.367 に答える
0
if (empty($_FILES['file']['name'])) {
    $filelink = '';
    $filetext = '';
} else {
    $filelink = mysql_real_escape_string($location);
    $filetext = 'Open File';
}
于 2013-02-15T16:42:14.513 に答える
0

ANDステートメントの間に必要はありません

if (empty($_FILES['file']['name'])) {
    $filelink = '';
    $filetext = '';
} else {
    $filelink = mysql_real_escape_string($location)l
    $filetext = 'Open File';
}

ステートメントがtrueと評価された場合if、次に一致する中括弧の間のすべてのコードが実行されます。falseの場合、else以降の一致する中括弧の間のすべてのコードが実行されます。

于 2013-02-15T16:42:34.543 に答える
0

AND は演算子です。

これは論理演算子であり、2 つのオペランドを取ります。左右または L+R。

最初に左側のオペランド L を評価し、次に bool に変換します。値が false の場合、R は実行されず、演算子は false を返します。true の場合、R が評価され、bool に変換されます。bool が true の場合、演算子は true を返し、それ以外の場合は false を返します。

したがって、あなたが言っていることから、AND 演算子を使用してステートメントを実行し、使用されることのない一時的なブール値を取得したいと考えています。

その観点からすると、あなたの論理は間違っています。代わりに「;」を使用してください ステートメントを区切るトークン。(A AND B) と言う代わりに {A;B;} と言うと、A と B の両方が評価されます。

于 2013-02-15T16:45:50.943 に答える