2013-02-15 48 views
0

如何正确书写条件语句,其中如果A是真实的,然后做B和C,做别的d和EPHP,如果A则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'; 
} 

回答

2

这就是括号是;他们创建一个块。无论在哪个块中都会执行。你可以把尽可能多的语句,只要你想在同一区块内:

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

+1为快 – 2013-02-15 16:42:32

+0

谢谢@ joseph-silber(或@ samuel-cook)。你能解释一下为什么AND不能用在这里吗?只是为了我的教育,如果你有时间。谢谢。 – 2013-02-15 16:44:23

+0

谢谢,明白了 - 有道理。 – 2013-02-15 16:45:27

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

你不需要的语句之间的AND

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

如果if语句评估为真,所有下一个匹配的花括号之间的代码将运行。如果为false,则会运行else之后匹配花括号之间的所有代码。

+0

感谢您的补充解释,@ jonathan-kuhn。正如你所看到的,我是PHP的新手,这帮助我理解的不仅仅是语言。干杯! – 2013-02-15 16:53:22

0

AND是一个操作员。

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

它首先评估左手操作数L,然后将其转换为布尔值。如果该值为false,则R从不执行,并且该运算符返回false。如果这是真的,则R被评估并转换为布尔值。如果布尔值为true,则运算符返回true,否则返回false。

所以从你所说的你要执行语句使用AND运算符来实现一个永远不会被使用的临时布尔值。

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

+0

感谢您在这里帮助我了解更多,@ bobshacks。 – 2013-02-15 16:54:41

相关问题