这是一个简单的问题。但在这里,我需要知道如果条件只使用一个变量。
$category='';
if ($category) {
}
你能说出实际检查的内容吗?条件只有一个变量..
检查变量是TRUE还是FALSE?
答案 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)
$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';
}
//输出:类别
答案 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)) {
}
...如果你希望它在空的时候激活。这实际上取决于你想要的东西,但是我认为这种情况从未得到满足。