可能重复:
关于 PHP 中的 if 语句
这是一个简单的问题。但是在这里我需要知道如果条件仅适用于一个变量。
$category='';
if ($category) {
}
你能说出在 If 条件中实际检查的内容吗?条件只有一个变量..
检查变量是真还是假?
可能重复:
关于 PHP 中的 if 语句
这是一个简单的问题。但是在这里我需要知道如果条件仅适用于一个变量。
$category='';
if ($category) {
}
你能说出在 If 条件中实际检查的内容吗?条件只有一个变量..
检查变量是真还是假?
PHP 是一种弱类型语言。要了解if
条件中评估的内容,请参阅booleans 的转换规则。
引用手册:
转换为布尔值时,会考虑以下值
FALSE
:
- 布尔值
FALSE
本身- 整数
0
(零)- 浮点数
0.0
(零)- 空字符串和字符串
"0"
- 一个元素为零的数组
- 具有零成员变量的对象(仅限 PHP 4)
- 特殊类型
NULL
(包括未设置的变量)SimpleXML
从空标签创建的对象
因此,您的条件将被评估为FALSE
, 因为$category == ''
和(bool) '' === FALSE
$category = '';
if ($category) {
echo 'category';
} else {
echo 'no category';
}
// 输出:无类别
$category = TRUE;
if ($category) {
echo 'category';
} else {
echo 'no category';
}
// 输出:类别
$category = '';
if (!empty($category)) {
echo 'category';
} else {
echo 'no category';
}
// 输出:无类别
$category = 0;
if (!empty($category)) {
echo 'category';
} else {
echo 'no category';
}
// 输出:无类别
$category = 0;
if (isset($category)) {
echo 'category';
} else {
echo 'no category';
}
// 输出:类别
这将检查TRUE
if ($category) {
}
false
在这种情况下,您的空字符串将被转换为布尔值。见manual on Booleans
。
这将检查变量true
的计算结果是否为 ,它相当于:
if( (bool)$category === true) )
是 它正在检查 TRUE 或 FALSE。如果表达式计算结果为 TRUE,PHP 将执行语句,如果计算结果为 FALSE - 它会忽略它。
如果($类别){
}
将简单地检查 $category 是否有值。你没有给 $category 一个值。在这种情况下,它将给出 FALSE。
只要评估的语句为真,if 条件块就会激活。
PHP 中的空字符串计算结果为 false,因此不会被激活。您可以通过指定您的期望来更具体,例如:
$category = '';
if (empty($category)) {
}
...如果您希望它在空时激活。这真的取决于你想要做什么,但像这样我假设条件永远不会满足。