2012-01-27 34 views
1

我只是徘徊在约等同于PHP是条件的概念,

什么可能是

true == isset($variable) 

isset($variable) == true 

之间的区别?

回答

3

对于这个特定的情况,没有区别。

第一种语法用于防止意外分配而不是比较。

if (true = $x) // would yiled error 
if ($x = true) // would work 

但是,在你的情况下,没有区别。

阐述:

说你要比较的变量$xtrue,做一些事情。你可能会不小心写

if ($x = true) 

,而不是

if ($x == true) 

和条件总是通过。

但如果你进入写作

if (true == $x) 

这些错误不会发生的习惯,因为会产生一个语法错误,你会提前知道。

+0

可以请您详细说明@Luchian – 2012-01-27 09:08:15

+0

但是我在这里比较它,而不是指定 – 2012-01-27 09:09:37

+1

这个想法是为了防止*偶然*分配。请参阅'尤达条件'在这里:http://stackoverflow.com/questions/3757941/yoda-conditions-and-integer-promotion – 2012-01-27 09:10:50

-1

没有 “真正的” diffrences(在这种情况下)
之间
true == isset($variable)

isset($variable) == true 
+1

你不说?!这些线条完全相同,显然没有区别。 – Oldskool 2012-01-27 09:12:17

+0

@Oldskool我的错误,对不起,我写错了。 – Oyeme 2012-01-27 09:31:33

3

没有区别。但是isset()本身返回一个布尔值。

所以永远不要使用

if (true == isset($variable)) 

刚:

if (isset($variable)) 
+0

这是一个伟大的提醒我xdazz谢谢Mate – 2012-01-27 09:16:48

-1

难道是Java的,有差异。

String test = null; 
    if("".equals(test)){ 
    System.out.println("I m fine.."); 
    } 
    if(test.equals("")){ 
    System.out.println("I m not fine.."); 
    } 
+0

这是关联这里伴侣? – 2012-01-27 09:21:31

0

请记住,当PHP解析,真正的实际定义,其等于1。此外所以是假的,这是等于0的PHP自动检查这些用于与在这些值的比较IF声明。你会安全的使用!运算符,因为它与if($ something == false)祝你好运!