Skip to content

Commit 92b7a18

Browse files
committed
Helpers::dump() support for infinite floats
1 parent 224730a commit 92b7a18

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

src/PhpGenerator/Helpers.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,11 @@ private static function _dump(& $var, $level = 0)
3535
return (string) $var;
3636

3737
} elseif (is_float($var)) {
38-
$var = var_export($var, TRUE);
39-
return strpos($var, '.') === FALSE ? $var . '.0' : $var;
38+
if (is_finite($var)) {
39+
$var = var_export($var, TRUE);
40+
return strpos($var, '.') === FALSE ? $var . '.0' : $var; // workaround for PHP < 7.0.2
41+
}
42+
return str_replace('.0', '', var_export($var, TRUE)); // workaround for PHP 7.0.2
4043

4144
} elseif (is_bool($var)) {
4245
return $var ? 'TRUE' : 'FALSE';

tests/PhpGenerator/Helpers.dump().phpt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,16 @@ use Tester\Assert;
1111

1212
require __DIR__ . '/../bootstrap.php';
1313

14+
ini_set('serialize_precision', 14);
1415

16+
Assert::same('0', Helpers::dump(0));
1517
Assert::same('1', Helpers::dump(1));
18+
Assert::same('0.0', Helpers::dump(0.0));
1619
Assert::same('1.0', Helpers::dump(1.0));
20+
Assert::same('0.1', Helpers::dump(0.1));
21+
Assert::same('INF', Helpers::dump(INF));
22+
Assert::same('-INF', Helpers::dump(-INF));
23+
Assert::same('NAN', Helpers::dump(NAN));
1724
Assert::same('NULL', Helpers::dump(NULL));
1825
Assert::same('TRUE', Helpers::dump(TRUE));
1926
Assert::same('FALSE', Helpers::dump(FALSE));

0 commit comments

Comments
 (0)