From e24eb48b3118ee9bf3767e16a5a28d3d4c792753 Mon Sep 17 00:00:00 2001 From: Florent Bruneau Date: Mon, 1 Nov 2010 11:50:33 +0100 Subject: [PATCH] Add can_convert_to_integer and to_integer functions. Signed-off-by: Florent Bruneau --- classes/env.php | 16 ++++++++-------- classes/pldict.php | 4 ++-- classes/s.php | 4 ++-- include/misc.inc.php | 17 +++++++++++++++++ 4 files changed, 29 insertions(+), 12 deletions(-) diff --git a/classes/env.php b/classes/env.php index cecee84..7a2144f 100644 --- a/classes/env.php +++ b/classes/env.php @@ -67,8 +67,8 @@ class Env public static function i($key, $default = 0) { - $i = Env::_get($key, $default); - return is_numeric($i) ? intval($i) : $default; + $i = to_integer(Env::_get($key, $default)); + return $i === false ? $default : $i; } public static function l(array $keys) @@ -125,8 +125,8 @@ class Post public static function i($key, $default = 0) { - $i = Post::_get($key, $default); - return is_numeric($i) ? intval($i) : $default; + $i = to_integer(Post::_get($key, $default)); + return $i === false ? $default : $i; } public static function l(array $keys) @@ -183,8 +183,8 @@ class Get public static function i($key, $default = 0) { - $i = Get::_get($key, $default); - return is_numeric($i) ? intval($i) : $default; + $i = to_integer(Get::_get($key, $default)); + return $i === false ? $default : $i; } public static function l(array $keys) @@ -258,8 +258,8 @@ class Cookie public static function i($key, $default = 0) { - $i = Cookie::_get($key, $default); - return is_numeric($i) ? intval($i) : $default; + $i = to_integer(Cookie::_get($key, $default)); + return $i === false ? $default : $i; } public static function l(array $keys) diff --git a/classes/pldict.php b/classes/pldict.php index b67095a..21a911b 100644 --- a/classes/pldict.php +++ b/classes/pldict.php @@ -79,8 +79,8 @@ class PlDict public function i($key, $default = 0) { - $i = $this->_get($key, $default); - return (is_int($i) || ctype_digit($i)) ? intval($i) : $default; + $i = to_integer($this->_get($key, $default)); + return $i === false ? $default : $i; } public function l(array $keys) diff --git a/classes/s.php b/classes/s.php index d436bf1..456736f 100644 --- a/classes/s.php +++ b/classes/s.php @@ -56,8 +56,8 @@ class S public static function i($key, $default = 0) { - $i = S::v($key, $default); - return is_numeric($i) ? intval($i) : $default; + $i = to_integer(S::v($key, $default)); + return $i === false ? $default : $i; } public static function t($key, $default = '') diff --git a/include/misc.inc.php b/include/misc.inc.php index e70e6d7..ad37a92 100644 --- a/include/misc.inc.php +++ b/include/misc.inc.php @@ -380,6 +380,23 @@ function ends_with($string, $suffix, $caseSensitive = true) } } +/** Check if the input data can be seen as an integer. + */ +function can_convert_to_integer($data) +{ + return is_int($data) || ctype_digit($data); +} + +/** Interpret the input data as an integer or return false. + */ +function to_integer($data) +{ + if (!can_convert_to_integer($data)) { + return false; + } + return intval($data); +} + // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: ?> -- 2.1.4