如果条件有一个变量用于理解

时间:2013-01-14 12:39:02

标签: php

  

可能重复:
  Regarding if statements in PHP

这是一个简单的问题。但在这里,我需要知道如果条件只使用一个变量。

$category='';

if ($category) {

}

你能说出实际检查的内容吗?条件只有一个变量..

检查变量是TRUE还是FALSE?

8 个答案:

答案 0 :(得分:3)

PHP是weak typed language。要了解if条件中评估的内容,请参阅conversion rules for booleans

从手册中引用:

  

转换为布尔值时,以下值被视为FALSE

     
      
  • 布尔FALSE本身
  •   
  • 整数0(零)
  •   
  • 浮动0.0(零)
  •   
  • 空字符串,字符串"0"
  •   
  • 包含零元素的数组
  •   
  • 一个零成员变量的对象(仅限PHP 4)
  •   
  • 特殊类型NULL(包括未设置的变量)
  •   
  • SimpleXML从空标签创建的对象
  •   

因此,您的情况将被评估为FALSE,因为$category == ''(bool) '' === FALSE

答案 1 :(得分:2)

类型1

$category = '';
if ($category) {
   echo 'category';
} else {
   echo 'no category';
}

//输出:无类别

类型2

$category = TRUE;
if ($category) {
   echo 'category';
} else {
   echo 'no category';
}

//输出:类别

类型3

$category = '';
if (!empty($category)) {
   echo 'category';
} else {
   echo 'no category';
}

//输出:无类别

类型4

$category = 0;
if (!empty($category)) {
   echo 'category';
} else {
   echo 'no category';
}

//输出:无类别

类型5

$category = 0;
if (isset($category)) {
   echo 'category';
} else {
   echo 'no category';
}

//输出:类别

答案 2 :(得分:1)

这会检查TRUE

if ($category) {

}

答案 3 :(得分:1)

在这种情况下,您的空字符串将被转换为布尔值false。请参阅manual on Booleans

答案 4 :(得分:1)

这会检查变量是否计算为true,它等同于:

if( (bool)$category === true) )

答案 5 :(得分:1)

是检查TRUE或FALSE。如果expression的计算结果为TRUE,那么PHP将执行语句,如果计算结果为FALSE,它将忽略它。

答案 6 :(得分:1)

if($ category){

}

只需检查$ category是否有值。你没有给$ category一个值。 在这种情况下,它将给出一个FALSE。

答案 7 :(得分:0)

只要evaluate语句为true,if-condition的块就会激活。

PHP中的空字符串计算结果为false,因此不会激活此字符串。您可以通过指定所期望的内容来更具体,例如:

   $category = '';
   if (empty($category)) {

   }

...如果你希望它在空的时候激活。这实际上取决于你想要的东西,但是我认为这种情况从未得到满足。