diff --git a/lib/Cake/Test/Case/Utility/HashTest.php b/lib/Cake/Test/Case/Utility/HashTest.php index 5618ddc8b83..74954b6a088 100644 --- a/lib/Cake/Test/Case/Utility/HashTest.php +++ b/lib/Cake/Test/Case/Utility/HashTest.php @@ -655,8 +655,21 @@ public function testContains() { * @return void */ public function testFilter() { - $result = Hash::filter(array('0', false, true, 0, array('one thing', 'I can tell you', 'is you got to be', false))); - $expected = array('0', 2 => true, 3 => 0, 4 => array('one thing', 'I can tell you', 'is you got to be')); + $result = Hash::filter(array( + '0', + false, + true, + 0, + 0.0, + array('one thing', 'I can tell you', 'is you got to be', false) + )); + $expected = array( + '0', + 2 => true, + 3 => 0, + 4 => 0.0, + 5 => array('one thing', 'I can tell you', 'is you got to be') + ); $this->assertSame($expected, $result); $result = Hash::filter(array(1, array(false))); diff --git a/lib/Cake/Utility/Hash.php b/lib/Cake/Utility/Hash.php index cdc56478488..258fbdf67ef 100644 --- a/lib/Cake/Utility/Hash.php +++ b/lib/Cake/Utility/Hash.php @@ -573,7 +573,7 @@ public static function filter(array $data, $callback = array('self', '_filter')) * @return bool */ protected static function _filter($var) { - if ($var === 0 || $var === '0' || !empty($var)) { + if ($var === 0 || $var === 0.0 || $var === '0' || !empty($var)) { return true; } return false;