0

可能重复:
关于 PHP 中的 if 语句

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

$category='';

if ($category) {

}

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

检查变量是真还是假?

4

8 回答 8

3

PHP 是一种弱类型语言。要了解if条件中评估的内容,请参阅booleans 的转换规则

引用手册:

转换为布尔值时,会考虑以下值FALSE

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

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

于 2013-01-14T12:42:44.510 回答
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';
}

// 输出:类别

于 2013-01-14T12:47:57.257 回答
1

这将检查TRUE

if ($category) {

}
于 2013-01-14T12:40:19.287 回答
1

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

于 2013-01-14T12:42:00.933 回答
1

这将检查变量true的计算结果是否为 ,它相当于:

if( (bool)$category === true) )
于 2013-01-14T12:42:13.590 回答
1

是 它正在检查 TRUE 或 FALSE。如果表达式计算结果为 TRUE,PHP 将执行语句,如果计算结果为 FALSE - 它会忽略它。

于 2013-01-14T12:42:58.070 回答
1

如果($类别){

}

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

于 2013-01-14T12:43:22.537 回答
0

只要评估的语句为真,if 条件块就会激活。

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

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

   }

...如果您希望它在空时激活。这真的取决于你想要做什么,但像这样我假设条件永远不会满足。

于 2013-01-14T12:45:52.840 回答