Pārlūkot izejas kodu

Remove deprecated use "create_function" in compare rule - FormValidator

Shows error in php 7.2
jmontoyaa 7 gadi atpakaļ
vecāks
revīzija
0a1a6a7ad7
1 mainītis faili ar 30 papildinājumiem un 4 dzēšanām
  1. 30 4
      main/inc/lib/pear/HTML/QuickForm/Rule/Compare.php

+ 30 - 4
main/inc/lib/pear/HTML/QuickForm/Rule/Compare.php

@@ -57,7 +57,7 @@ class HTML_QuickForm_Rule_Compare extends HTML_QuickForm_Rule
     * @param  string     operator name
     * @return string     operator to use for validation
     */
-    function _findOperator($name)
+    public function _findOperator($name)
     {
         $name = trim($name);
         if (empty($name)) {
@@ -79,12 +79,38 @@ class HTML_QuickForm_Rule_Compare extends HTML_QuickForm_Rule
     public function validate($values, $operator = null)
     {
         $operator = $this->_findOperator($operator);
+
+        $a = $values[0];
+        $b = $values[1];
+
         if ('===' != $operator && '!==' != $operator) {
-            $compareFn = create_function('$a, $b', 'return floatval($a) ' . $operator . ' floatval($b);');
+            $a = floatval($a);
+            $b = floatval($b);
         } else {
-            $compareFn = create_function('$a, $b', 'return strval($a) ' . $operator . ' strval($b);');
+            $a = strval($a);
+            $b = strval($b);
+        }
+
+        switch ($operator) {
+            case '===':
+                return $a === $b;
+                break;
+            case '!==':
+                return $a !== $b;
+                break;
+            case '>':
+                return $a > $b;
+                break;
+            case '>=':
+                return $a >= $b;
+                break;
+            case '<':
+                return $a < $b;
+                break;
+            case '<=':
+                return $a <= $b;
+                break;
         }
-        return $compareFn($values[0], $values[1]);
     }
 
     public function getValidationScript($operator = null)