2013-06-02 49 views
2

好,只是一个简单的问题..的声明,如果在条件只有一个变量

我从来不敢肯定它是什么......可以请人给我解释一下

if($var) { ... } 

是什么我们真的在这里检查?!

是的,另一种情况也:

if (!$var) { ... } 

TNX! :)

+0

这意味着该变量是一个布尔值,或者相​​当于一个布尔值;因为'if'基本上只是对TRUE或FALSE的测试 –

+0

想象一下'$ var = true;'或'$ var = false;'。 –

+2

我很欣赏社区和版主的努力,但我可以问为什么这个问题关闭了吗?对我来说这似乎相当不错,我真的不认为它含糊不清,谢谢。 – Mahdi

回答

9

这只是关于检查变量的值。它应该返回,只有一个布尔值。即。 TRUEFALSE

在你的情况下,(无论如何)它的解释如下。

if($var){ 
    // means, if $var is set to true, or has any value at all, 
    // execute the code that goes inside here. 
    } 


if (!$var){ 
    // is the opposite of the first example, it means, 
    // if $var is set to false, or is empty, not set.. executing this code... 
    } 

下面的例子是从PHP manual,并会告诉你,一些表达式的结果会是什么PHP的布尔结果进行评价时。

<?php 
var_dump((bool) "");  // bool(false) 
var_dump((bool) 1);   // bool(true) 
var_dump((bool) -2);  // bool(true) 
var_dump((bool) "foo");  // bool(true) 
var_dump((bool) 2.3e5);  // bool(true) 
var_dump((bool) array(12)); // bool(true) 
var_dump((bool) array()); // bool(false) 
var_dump((bool) "false"); // bool(true) 
+0

听起来很合理.. :) – Adrian

0

!装置的逻辑not,这意味着如果块将被如果变量具有将由PHP作为FALSE待处理的FALSE的值由于松散打字系统正输入。

下面的值将是treated as FALSE

FALSE 
0 
0.0 
"" 
"0" 
empty array 
NULL 
SimpleXML Objects created from empty tags 
0

如果报表

if($var) { ... } 

当我们评估一个if声明,PHP将看看什么是if语句的括号内,并尝试将其评估为truefalse。例如:

if(0 == 0) 
{ 
} 

PHP将检查该值在左边,发现这是完全等于右边的值,并有效地掉出0 == 0true。所以,现在有这么一句话:

if(true) 
{ 
} 

现在用你的榜样,$var包含任何truefalse的一个布尔值。所以,以同样的方式,PHP将换出$var它所包含的值:

$var = false; 
if($var) 
{ 
} 

if statement变得if(false) {}。因此代码没有运行。

该!操作

!否定在if语句中的值,所以在像以前一样以同样的方式,让我们说:

$var = false; 

if(!$var){} 

现在,PHP将换出$varfalse ..

if(!false) 

它会查看!运营商,该运营商将false转换为truetruefalse。所以结果将是if(true)

1

我同意phpNoOb。它用于检查$var是否为TRUE/FALSE,并检查值是否已分配给$var。好问题Adrian

0

除了其它:

$var; // second 
// $var = null; // second 
// $var = -1; // first 
// $var = 0; // second 
// $var = 1; // first 
// $var = 'hey!'; // first 
// $var = ''; // second 
// $var = true; // first 
// $var = false; // second 
// $var = array(); // second 
// $var = array('one','two'); // first 

if ($var) echo 'first'; 

if (!$var) echo 'second';