]> git.mxchange.org Git - core.git/blobdiff - framework/main/classes/utils/number/class_NumberUtils.php
Continued:
[core.git] / framework / main / classes / utils / number / class_NumberUtils.php
index 29afa81f2279fe0b1fd6b48fea98bd41e7743443..96d654aa414e38229fc316ae9cc769b9705c921f 100644 (file)
@@ -107,4 +107,32 @@ final class NumberUtils extends BaseFrameworkSystem {
                return $readable;
        }
 
+       /**
+        * Checks whether the given number is really a number (only chars 0-9).
+        *
+        * @param       $num            A string consisting only chars between 0 and 9
+        * @param       $castValue      Whether to cast the value to double. Do only use this to secure numbers from Requestable classes.
+        * @param       $assertMismatch         Whether to assert mismatches
+        * @return      $ret            The (hopefully) secured numbered value
+        */
+       public static function bigintval (string $num, bool $castValue = true, bool $assertMismatch = false) {
+               // Filter all numbers out
+               $ret = preg_replace('/[^0123456789]/', '', $num);
+
+               // Shall we cast?
+               if ($castValue === true) {
+                       // Cast to biggest numeric type
+                       $ret = (double) $ret;
+               }
+
+               // Assert only if requested
+               if ($assertMismatch === true) {
+                       // Has the whole value changed?
+                       assert(('' . $ret . '' != '' . $num . '') && (!is_null($num)));
+               }
+
+               // Return result
+               return $ret;
+       }
+
 }