如果变量为0,则代码返回空字符串

时间:2012-02-20 20:54:49

标签: php

每当Capacity为0时 - 我的PHP代码似乎只返回短语显示而不是容量为0的房间。我该如何解决这个问题?

$allowedFields = array(
    'Capacity',
    'Location',
    'RoomType'
);
// Retrieve only the allowed fields
$fields = array_intersect_key($_POST, array_flip($allowedFields));
// Remove whitespace
$fields = array_map('trim', $fields);
// Remove empty values
$fields = array_filter($fields);
// Filter values for HTML output
$fields = array_map('htmlentities', $fields);
// Create the variables
extract($fields, EXTR_SKIP);
{
$heading = 'Showing';
if(isset($RoomType)) {
    $heading .= ' ' . $RoomType;
}
if(isset($Capacity)) {
    $heading .= sprintf(' rooms with a capacity of %s', $Capacity);
}
if(isset($Location)) {
    $heading .= sprintf(' in %s Park', $Location);
}
}

3 个答案:

答案 0 :(得分:4)

array_filter可能正在删除该值,因为它为零。

来自php.net

  

如果没有提供回调,则输入的所有条目等于FALSE(参见转换为布尔值)将被删除。

答案 1 :(得分:2)

array_filter是问题所在。如果没有回调,它将删除所有错误的数组条目。见这里:http://php.net/manual/en/function.array-filter.php

答案 2 :(得分:1)

array_filter删除0个值...删除array_filter语句