wp/wp-includes/random_compat/cast_to_int.php
changeset 9 177826044cd9
parent 7 cf61fcea0001
child 19 3d72ae0968f4
--- a/wp/wp-includes/random_compat/cast_to_int.php	Mon Oct 14 18:06:33 2019 +0200
+++ b/wp/wp-includes/random_compat/cast_to_int.php	Mon Oct 14 18:28:13 2019 +0200
@@ -5,7 +5,7 @@
  *
  * The MIT License (MIT)
  *
- * Copyright (c) 2015 Paragon Initiative Enterprises
+ * Copyright (c) 2015 - 2017 Paragon Initiative Enterprises
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -26,7 +26,7 @@
  * SOFTWARE.
  */
 
-if (!function_exists('RandomCompat_intval')) {
+if (!is_callable('RandomCompat_intval')) {
     
     /**
      * Cast to an integer if we can, safely.
@@ -38,15 +38,18 @@
      * through.
      * 
      * @param int|float $number    The number we want to convert to an int
-     * @param boolean   $fail_open Set to true to not throw an exception
+     * @param bool      $fail_open Set to true to not throw an exception
      * 
-     * @return int (or float if $fail_open)
+     * @return float|int
+     * @psalm-suppress InvalidReturnType
      *
      * @throws TypeError
      */
     function RandomCompat_intval($number, $fail_open = false)
     {
-        if (is_numeric($number)) {
+        if (is_int($number) || is_float($number)) {
+            $number += 0;
+        } elseif (is_numeric($number)) {
             $number += 0;
         }
 
@@ -60,12 +63,13 @@
             $number = (int) $number;
         }
 
-        if (is_int($number) || $fail_open) {
-            return $number;
+        if (is_int($number)) {
+            return (int) $number;
+        } elseif (!$fail_open) {
+            throw new TypeError(
+                'Expected an integer.'
+            );
         }
-
-        throw new TypeError(
-            'Expected an integer.'
-        );
+        return $number;
     }
 }