好,只是一個簡單的問題..的聲明,如果在條件只有一個變量
我從來不敢肯定它是什麼......可以請人給我解釋一下
if($var) { ... }
是什麼我們真的在這裏檢查?!
是的,另一種情況也:
if (!$var) { ... }
TNX! :)
好,只是一個簡單的問題..的聲明,如果在條件只有一個變量
我從來不敢肯定它是什麼......可以請人給我解釋一下
if($var) { ... }
是什麼我們真的在這裏檢查?!
是的,另一種情況也:
if (!$var) { ... }
TNX! :)
這只是關於檢查變量的值。它應該返回,只有一個布爾值。即。 TRUE
或FALSE
。
在你的情況下,(無論如何)它的解釋如下。
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)
聽起來很合理.. :) – Adrian
的!
裝置的邏輯not
,這意味着如果塊將被如果變量具有將由PHP作爲FALSE
待處理的FALSE
或的值由於鬆散打字系統正輸入。
下面的值將是treated as FALSE
:
FALSE
0
0.0
""
"0"
empty array
NULL
SimpleXML Objects created from empty tags
如果報表
if($var) { ... }
當我們評估一個if
聲明,PHP將看看什麼是if
語句的括號內,並嘗試將其評估爲true
或false
。例如:
if(0 == 0)
{
}
PHP將檢查該值在左邊,發現這是完全等於右邊的值,並有效地掉出0 == 0
的true
。所以,現在有這麼一句話:
if(true)
{
}
現在用你的榜樣,$var
包含任何true
或false
的一個布爾值。所以,以同樣的方式,PHP將換出$var
它所包含的值:
$var = false;
if($var)
{
}
的if statement
變得if(false) {}
。因此代碼沒有運行。
該!操作
!
否定在if語句中的值,所以在像以前一樣以同樣的方式,讓我們說:
$var = false;
if(!$var){}
現在,PHP將換出$var
爲false
..
if(!false)
它會查看!
運營商,該運營商將false
轉換爲true
和true
至false
。所以結果將是if(true)
。
除了其它:
$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';
這意味着該變量是一個布爾值,或者相當於一個布爾值;因爲'if'基本上只是對TRUE或FALSE的測試 –
想象一下'$ var = true;'或'$ var = false;'。 –
我很欣賞社區和版主的努力,但我可以問爲什麼這個問題關閉了嗎?對我來說這似乎相當不錯,我真的不認爲它含糊不清,謝謝。 – Mahdi