0

如何正确编写条件语句,如果 A 为真,则执行 B AND 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';
}

如果该if语句的计算结果为真,则将运行下一个匹配的大括号之间的所有代码。如果为 false,则将运行 else 之后匹配的大括号之间的所有代码。

于 2013-02-15T16:42:34.543 回答
0

AND 是一个运算符。

它是一个逻辑运算符,有两个操作数。左右或 L+R。

它首先计算左侧操作数 L,然后将其转换为布尔值。如果值为 false,则 R 永远不会执行,并且运算符返回 false。如果为真,则评估 R 并将其转换为布尔值。如果 bool 为真,则运算符返回真,否则返回假。

因此,从您所说的内容来看,您希望使用 AND 运算符执行语句以实现永远不会使用的临时布尔值。

从这个角度来看,你的逻辑是错误的。而是使用“;” 用于分隔语句的标记。而不是说 (A AND B) 说 {A;B;} 然后 A 和 B 都将被评估。

于 2013-02-15T16:45:50.943 回答