2013-06-02 48 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';