2013-06-02 2 views
2

Хорошо, только простой вопрос ..Если утверждение, что имеет в состоянии только переменная

Я никогда не уверен, что это такое ... может кто-нибудь объяснить, что означает

if($var) { ... } 

Что мы действительно рассматриваем здесь?!

И да, еще один случай также:

if (!$var) { ... } 

Tnx! :)

+0

Это означает, что переменная является булевой или приравнивает к Boolean; потому что 'if' в основном просто тест для TRUE или FALSE –

+0

Представьте себе' $ var = true; 'или' $ var = false; '. –

+2

Я ценю сообщество и модераторов за их усилия, но могу ли я спросить, почему этот вопрос закрыт? Мне кажется, все в порядке, и я действительно не думаю, что это неопределенный, неполный и т. Д. Спасибо. – Mahdi

ответ

9

Это всего лишь проверка значения переменной. Он должен возвращаться, только с булевым значением. то есть. 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) 
+0

звучит разумно .. :) – Adrian

0

The ! означает логический not, а это означает, что, если блок будет введен, если переменная имеет значение FALSEили будет обработана с помощью PHP, как FALSE из-за рыхлой набрав системном.

следующие значения будут treated as FALSE:

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

Если заявления

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) {}. Следовательно, код не запускается.

The!Оператор

!нивелирует значение в, если заявление, так точно так же, как и раньше, скажем:

$var = false; 

if(!$var){} 

Теперь PHP будет поменять $var для false ..

if(!false) 

И он будет смотреть на оператора !, который превращает false в true и true - false. Таким образом, результат будет 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'; 
Смежные вопросы