RFC: https://wiki.php.net/rfc/inheritance_private_methods
. If an object constructor exit()s, the object destructor will no longer be
called. This matches the behavior when the constructor throws.
+ . Non-strict comparisons between numbers and non-numeric strings now work by
+ casting the number to string and comparing the strings. Comparisons between
+ numbers and numeric strings continue to work as before. Notably, this means
+ that `0 == "not-a-number"` is considered false now.
+ RFC: https://wiki.php.net/rfc/string_to_number_comparison
- COM:
. Removed the ability to import case-insensitive constants from type
string(0) "" == string(0) ""
string(0) "" != int(1)
string(0) "" != float(2.5)
-string(0) "" == int(0)
+string(0) "" != int(0)
string(0) "" != string(6) "string"
string(0) "" != string(3) "123"
string(0) "" != string(3) "2.5"
float(2.5) != int(-2147483648)
float(2.5) != string(11) "-2147483648"
int(0) != array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
-int(0) == string(0) ""
+int(0) != string(0) ""
int(0) != int(1)
int(0) != float(2.5)
int(0) == int(0)
-int(0) == string(6) "string"
+int(0) != string(6) "string"
int(0) != string(3) "123"
int(0) != string(3) "2.5"
int(0) == NULL
string(6) "string" != string(0) ""
string(6) "string" != int(1)
string(6) "string" != float(2.5)
-string(6) "string" == int(0)
+string(6) "string" != int(0)
string(6) "string" == string(6) "string"
string(6) "string" != string(3) "123"
string(6) "string" != string(3) "2.5"
string(0) "" == string(0) ""
string(0) "" != int(1)
string(0) "" != float(2.5)
-string(0) "" == int(0)
+string(0) "" != int(0)
string(0) "" != string(6) "string"
string(0) "" != string(3) "123"
string(0) "" != string(3) "2.5"
float(2.5) != int(-9223372036854775808)
float(2.5) != string(20) "-9223372036854775808"
int(0) != array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
-int(0) == string(0) ""
+int(0) != string(0) ""
int(0) != int(1)
int(0) != float(2.5)
int(0) == int(0)
-int(0) == string(6) "string"
+int(0) != string(6) "string"
int(0) != string(3) "123"
int(0) != string(3) "2.5"
int(0) == NULL
string(6) "string" != string(0) ""
string(6) "string" != int(1)
string(6) "string" != float(2.5)
-string(6) "string" == int(0)
+string(6) "string" != int(0)
string(6) "string" == string(6) "string"
string(6) "string" != string(3) "123"
string(6) "string" != string(3) "2.5"
string(0) "" <= object(stdClass)#2 (0) {}
string(0) "" <= object(test)#3 (0) {}
string(0) "" <= array(0) {}
-string(0) "" > int(-2147483648)
+string(0) "" <= int(-2147483648)
string(0) "" <= string(11) "-2147483648"
int(1) <= array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
int(1) > string(0) ""
int(1) <= int(1)
int(1) <= float(2.5)
int(1) > int(0)
-int(1) > string(6) "string"
+int(1) <= string(6) "string"
int(1) <= string(3) "123"
int(1) <= string(3) "2.5"
int(1) > NULL
float(2.5) > int(1)
float(2.5) <= float(2.5)
float(2.5) > int(0)
-float(2.5) > string(6) "string"
+float(2.5) <= string(6) "string"
float(2.5) <= string(3) "123"
float(2.5) <= string(3) "2.5"
float(2.5) > NULL
float(2.5) > int(-2147483648)
float(2.5) > string(11) "-2147483648"
int(0) <= array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
-int(0) <= string(0) ""
+int(0) > string(0) ""
int(0) <= int(1)
int(0) <= float(2.5)
int(0) <= int(0)
int(0) > string(11) "-2147483648"
string(6) "string" <= array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
string(6) "string" > string(0) ""
-string(6) "string" <= int(1)
-string(6) "string" <= float(2.5)
-string(6) "string" <= int(0)
+string(6) "string" > int(1)
+string(6) "string" > float(2.5)
+string(6) "string" > int(0)
string(6) "string" <= string(6) "string"
string(6) "string" > string(3) "123"
string(6) "string" > string(3) "2.5"
array(0) {} > int(-2147483648)
array(0) {} > string(11) "-2147483648"
int(-2147483648) <= array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
-int(-2147483648) <= string(0) ""
+int(-2147483648) > string(0) ""
int(-2147483648) <= int(1)
int(-2147483648) <= float(2.5)
int(-2147483648) <= int(0)
string(0) "" <= object(stdClass)#%d (0) {}
string(0) "" <= object(test)#%d (0) {}
string(0) "" <= array(0) {}
-string(0) "" > int(-9223372036854775808)
+string(0) "" <= int(-9223372036854775808)
string(0) "" <= string(20) "-9223372036854775808"
int(1) <= array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
int(1) > string(0) ""
int(1) <= int(1)
int(1) <= float(2.5)
int(1) > int(0)
-int(1) > string(6) "string"
+int(1) <= string(6) "string"
int(1) <= string(3) "123"
int(1) <= string(3) "2.5"
int(1) > NULL
float(2.5) > int(1)
float(2.5) <= float(2.5)
float(2.5) > int(0)
-float(2.5) > string(6) "string"
+float(2.5) <= string(6) "string"
float(2.5) <= string(3) "123"
float(2.5) <= string(3) "2.5"
float(2.5) > NULL
float(2.5) > int(-9223372036854775808)
float(2.5) > string(20) "-9223372036854775808"
int(0) <= array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
-int(0) <= string(0) ""
+int(0) > string(0) ""
int(0) <= int(1)
int(0) <= float(2.5)
int(0) <= int(0)
int(0) > string(20) "-9223372036854775808"
string(6) "string" <= array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
string(6) "string" > string(0) ""
-string(6) "string" <= int(1)
-string(6) "string" <= float(2.5)
-string(6) "string" <= int(0)
+string(6) "string" > int(1)
+string(6) "string" > float(2.5)
+string(6) "string" > int(0)
string(6) "string" <= string(6) "string"
string(6) "string" > string(3) "123"
string(6) "string" > string(3) "2.5"
array(0) {} > int(-9223372036854775808)
array(0) {} > string(20) "-9223372036854775808"
int(-9223372036854775808) <= array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
-int(-9223372036854775808) <= string(0) ""
+int(-9223372036854775808) > string(0) ""
int(-9223372036854775808) <= int(1)
int(-9223372036854775808) <= float(2.5)
int(-9223372036854775808) <= int(0)
string(0) "" >= string(0) ""
string(0) "" < int(1)
string(0) "" < float(2.5)
-string(0) "" >= int(0)
+string(0) "" < int(0)
string(0) "" < string(6) "string"
string(0) "" < string(3) "123"
string(0) "" < string(3) "2.5"
string(0) "" < object(stdClass)#2 (0) {}
string(0) "" < object(test)#3 (0) {}
string(0) "" < array(0) {}
-string(0) "" >= int(-2147483648)
+string(0) "" < int(-2147483648)
string(0) "" < string(11) "-2147483648"
int(1) < array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
int(1) >= string(0) ""
int(1) >= int(1)
int(1) < float(2.5)
int(1) >= int(0)
-int(1) >= string(6) "string"
+int(1) < string(6) "string"
int(1) < string(3) "123"
int(1) < string(3) "2.5"
int(1) >= NULL
float(2.5) >= int(1)
float(2.5) >= float(2.5)
float(2.5) >= int(0)
-float(2.5) >= string(6) "string"
+float(2.5) < string(6) "string"
float(2.5) < string(3) "123"
float(2.5) >= string(3) "2.5"
float(2.5) >= NULL
int(0) < int(1)
int(0) < float(2.5)
int(0) >= int(0)
-int(0) >= string(6) "string"
+int(0) < string(6) "string"
int(0) < string(3) "123"
int(0) < string(3) "2.5"
int(0) >= NULL
int(0) >= string(11) "-2147483648"
string(6) "string" < array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
string(6) "string" >= string(0) ""
-string(6) "string" < int(1)
-string(6) "string" < float(2.5)
+string(6) "string" >= int(1)
+string(6) "string" >= float(2.5)
string(6) "string" >= int(0)
string(6) "string" >= string(6) "string"
string(6) "string" >= string(3) "123"
array(0) {} >= int(-2147483648)
array(0) {} >= string(11) "-2147483648"
int(-2147483648) < array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
-int(-2147483648) < string(0) ""
+int(-2147483648) >= string(0) ""
int(-2147483648) < int(1)
int(-2147483648) < float(2.5)
int(-2147483648) < int(0)
string(0) "" >= string(0) ""
string(0) "" < int(1)
string(0) "" < float(2.5)
-string(0) "" >= int(0)
+string(0) "" < int(0)
string(0) "" < string(6) "string"
string(0) "" < string(3) "123"
string(0) "" < string(3) "2.5"
string(0) "" < object(stdClass)#%d (0) {}
string(0) "" < object(test)#%d (0) {}
string(0) "" < array(0) {}
-string(0) "" >= int(-9223372036854775808)
+string(0) "" < int(-9223372036854775808)
string(0) "" < string(20) "-9223372036854775808"
int(1) < array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
int(1) >= string(0) ""
int(1) >= int(1)
int(1) < float(2.5)
int(1) >= int(0)
-int(1) >= string(6) "string"
+int(1) < string(6) "string"
int(1) < string(3) "123"
int(1) < string(3) "2.5"
int(1) >= NULL
float(2.5) >= int(1)
float(2.5) >= float(2.5)
float(2.5) >= int(0)
-float(2.5) >= string(6) "string"
+float(2.5) < string(6) "string"
float(2.5) < string(3) "123"
float(2.5) >= string(3) "2.5"
float(2.5) >= NULL
int(0) < int(1)
int(0) < float(2.5)
int(0) >= int(0)
-int(0) >= string(6) "string"
+int(0) < string(6) "string"
int(0) < string(3) "123"
int(0) < string(3) "2.5"
int(0) >= NULL
int(0) >= string(20) "-9223372036854775808"
string(6) "string" < array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
string(6) "string" >= string(0) ""
-string(6) "string" < int(1)
-string(6) "string" < float(2.5)
+string(6) "string" >= int(1)
+string(6) "string" >= float(2.5)
string(6) "string" >= int(0)
string(6) "string" >= string(6) "string"
string(6) "string" >= string(3) "123"
array(0) {} >= int(-9223372036854775808)
array(0) {} >= string(20) "-9223372036854775808"
int(-9223372036854775808) < array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
-int(-9223372036854775808) < string(0) ""
+int(-9223372036854775808) >= string(0) ""
int(-9223372036854775808) < int(1)
int(-9223372036854775808) < float(2.5)
int(-9223372036854775808) < int(0)
string(0) "" >= string(0) ""
string(0) "" < int(1)
string(0) "" < float(2.5)
-string(0) "" >= int(0)
+string(0) "" < int(0)
string(0) "" < string(6) "string"
string(0) "" < string(3) "123"
string(0) "" < string(3) "2.5"
string(0) "" < object(stdClass)#2 (0) {}
string(0) "" < object(test)#3 (0) {}
string(0) "" < array(0) {}
-string(0) "" >= int(-2147483648)
+string(0) "" < int(-2147483648)
string(0) "" < string(11) "-2147483648"
int(1) < array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
int(1) >= string(0) ""
int(1) >= int(1)
int(1) < float(2.5)
int(1) >= int(0)
-int(1) >= string(6) "string"
+int(1) < string(6) "string"
int(1) < string(3) "123"
int(1) < string(3) "2.5"
int(1) >= NULL
float(2.5) >= int(1)
float(2.5) >= float(2.5)
float(2.5) >= int(0)
-float(2.5) >= string(6) "string"
+float(2.5) < string(6) "string"
float(2.5) < string(3) "123"
float(2.5) >= string(3) "2.5"
float(2.5) >= NULL
int(0) < int(1)
int(0) < float(2.5)
int(0) >= int(0)
-int(0) >= string(6) "string"
+int(0) < string(6) "string"
int(0) < string(3) "123"
int(0) < string(3) "2.5"
int(0) >= NULL
int(0) >= string(11) "-2147483648"
string(6) "string" < array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
string(6) "string" >= string(0) ""
-string(6) "string" < int(1)
-string(6) "string" < float(2.5)
+string(6) "string" >= int(1)
+string(6) "string" >= float(2.5)
string(6) "string" >= int(0)
string(6) "string" >= string(6) "string"
string(6) "string" >= string(3) "123"
array(0) {} >= int(-2147483648)
array(0) {} >= string(11) "-2147483648"
int(-2147483648) < array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
-int(-2147483648) < string(0) ""
+int(-2147483648) >= string(0) ""
int(-2147483648) < int(1)
int(-2147483648) < float(2.5)
int(-2147483648) < int(0)
string(0) "" >= string(0) ""
string(0) "" < int(1)
string(0) "" < float(2.5)
-string(0) "" >= int(0)
+string(0) "" < int(0)
string(0) "" < string(6) "string"
string(0) "" < string(3) "123"
string(0) "" < string(3) "2.5"
string(0) "" < object(stdClass)#%d (0) {}
string(0) "" < object(test)#%d (0) {}
string(0) "" < array(0) {}
-string(0) "" >= int(-9223372036854775808)
+string(0) "" < int(-9223372036854775808)
string(0) "" < string(20) "-9223372036854775808"
int(1) < array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
int(1) >= string(0) ""
int(1) >= int(1)
int(1) < float(2.5)
int(1) >= int(0)
-int(1) >= string(6) "string"
+int(1) < string(6) "string"
int(1) < string(3) "123"
int(1) < string(3) "2.5"
int(1) >= NULL
float(2.5) >= int(1)
float(2.5) >= float(2.5)
float(2.5) >= int(0)
-float(2.5) >= string(6) "string"
+float(2.5) < string(6) "string"
float(2.5) < string(3) "123"
float(2.5) >= string(3) "2.5"
float(2.5) >= NULL
int(0) < int(1)
int(0) < float(2.5)
int(0) >= int(0)
-int(0) >= string(6) "string"
+int(0) < string(6) "string"
int(0) < string(3) "123"
int(0) < string(3) "2.5"
int(0) >= NULL
int(0) >= string(20) "-9223372036854775808"
string(6) "string" < array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
string(6) "string" >= string(0) ""
-string(6) "string" < int(1)
-string(6) "string" < float(2.5)
+string(6) "string" >= int(1)
+string(6) "string" >= float(2.5)
string(6) "string" >= int(0)
string(6) "string" >= string(6) "string"
string(6) "string" >= string(3) "123"
array(0) {} >= int(-9223372036854775808)
array(0) {} >= string(20) "-9223372036854775808"
int(-9223372036854775808) < array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
-int(-9223372036854775808) < string(0) ""
+int(-9223372036854775808) >= string(0) ""
int(-9223372036854775808) < int(1)
int(-9223372036854775808) < float(2.5)
int(-9223372036854775808) < int(0)
string(0) "" <= object(stdClass)#2 (0) {}
string(0) "" <= object(test)#3 (0) {}
string(0) "" <= array(0) {}
-string(0) "" > int(-2147483648)
+string(0) "" <= int(-2147483648)
string(0) "" <= string(11) "-2147483648"
int(1) <= array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
int(1) > string(0) ""
int(1) <= int(1)
int(1) <= float(2.5)
int(1) > int(0)
-int(1) > string(6) "string"
+int(1) <= string(6) "string"
int(1) <= string(3) "123"
int(1) <= string(3) "2.5"
int(1) > NULL
float(2.5) > int(1)
float(2.5) <= float(2.5)
float(2.5) > int(0)
-float(2.5) > string(6) "string"
+float(2.5) <= string(6) "string"
float(2.5) <= string(3) "123"
float(2.5) <= string(3) "2.5"
float(2.5) > NULL
float(2.5) > int(-2147483648)
float(2.5) > string(11) "-2147483648"
int(0) <= array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
-int(0) <= string(0) ""
+int(0) > string(0) ""
int(0) <= int(1)
int(0) <= float(2.5)
int(0) <= int(0)
int(0) > string(11) "-2147483648"
string(6) "string" <= array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
string(6) "string" > string(0) ""
-string(6) "string" <= int(1)
-string(6) "string" <= float(2.5)
-string(6) "string" <= int(0)
+string(6) "string" > int(1)
+string(6) "string" > float(2.5)
+string(6) "string" > int(0)
string(6) "string" <= string(6) "string"
string(6) "string" > string(3) "123"
string(6) "string" > string(3) "2.5"
array(0) {} > int(-2147483648)
array(0) {} > string(11) "-2147483648"
int(-2147483648) <= array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
-int(-2147483648) <= string(0) ""
+int(-2147483648) > string(0) ""
int(-2147483648) <= int(1)
int(-2147483648) <= float(2.5)
int(-2147483648) <= int(0)
string(0) "" <= object(stdClass)#%d (0) {}
string(0) "" <= object(test)#%d (0) {}
string(0) "" <= array(0) {}
-string(0) "" > int(-9223372036854775808)
+string(0) "" <= int(-9223372036854775808)
string(0) "" <= string(20) "-9223372036854775808"
int(1) <= array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
int(1) > string(0) ""
int(1) <= int(1)
int(1) <= float(2.5)
int(1) > int(0)
-int(1) > string(6) "string"
+int(1) <= string(6) "string"
int(1) <= string(3) "123"
int(1) <= string(3) "2.5"
int(1) > NULL
float(2.5) > int(1)
float(2.5) <= float(2.5)
float(2.5) > int(0)
-float(2.5) > string(6) "string"
+float(2.5) <= string(6) "string"
float(2.5) <= string(3) "123"
float(2.5) <= string(3) "2.5"
float(2.5) > NULL
float(2.5) > int(-9223372036854775808)
float(2.5) > string(20) "-9223372036854775808"
int(0) <= array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
-int(0) <= string(0) ""
+int(0) > string(0) ""
int(0) <= int(1)
int(0) <= float(2.5)
int(0) <= int(0)
int(0) > string(20) "-9223372036854775808"
string(6) "string" <= array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
string(6) "string" > string(0) ""
-string(6) "string" <= int(1)
-string(6) "string" <= float(2.5)
-string(6) "string" <= int(0)
+string(6) "string" > int(1)
+string(6) "string" > float(2.5)
+string(6) "string" > int(0)
string(6) "string" <= string(6) "string"
string(6) "string" > string(3) "123"
string(6) "string" > string(3) "2.5"
array(0) {} > int(-9223372036854775808)
array(0) {} > string(20) "-9223372036854775808"
int(-9223372036854775808) <= array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
-int(-9223372036854775808) <= string(0) ""
+int(-9223372036854775808) > string(0) ""
int(-9223372036854775808) <= int(1)
int(-9223372036854775808) <= float(2.5)
int(-9223372036854775808) <= int(0)
--- /dev/null
+--TEST--
+String to number comparison
+--FILE--
+<?php
+
+// This tests the examples from the RFC.
+
+function format($val) {
+ if (is_float($val)) {
+ if (is_nan($val)) return "NAN";
+ if ($val == INF) return "INF";
+ if ($val == -INF) return "-INF";
+ }
+ return json_encode($val);
+}
+
+function compare_eq($val1, $val2) {
+ echo format($val1), " == ", format($val2), ": ", format($val1 == $val2), "\n";
+}
+
+function compare_3way($val1, $val2) {
+ echo format($val1), " <=> ", format($val2), ": ", format($val1 <=> $val2), "\n";
+}
+
+compare_eq(42, "000042");
+compare_eq(42, "42.0");
+compare_eq(42.0, "+42.0E0");
+compare_eq(0, "0e214987142012");
+echo "\n";
+
+compare_eq("42", "000042");
+compare_eq("42", "42.0");
+compare_eq("42.0", "+42.0E0");
+compare_eq("0", "0e214987142012");
+echo "\n";
+
+compare_eq(42, " 42");
+compare_eq(42, "42 ");
+compare_eq(42, "42abc");
+compare_eq(42, "abc42");
+compare_eq( 0, "abc42");
+echo "\n";
+
+compare_eq(INF, "INF");
+compare_eq(-INF, "-INF");
+compare_eq(NAN, "NAN");
+compare_eq(INF, "1e1000");
+compare_eq(-INF, "-1e1000");
+echo "\n";
+
+$float = 1.75;
+
+echo "precision=14:\n";
+ini_set('precision', 14);
+compare_3way($float, "1.75abc");
+compare_3way((string) $float, "1.75abc");
+
+echo "precision=0:\n";
+ini_set('precision', 0);
+compare_3way($float, "1.75abc");
+compare_3way((string) $float, "1.75abc");
+
+?>
+--EXPECT--
+42 == "000042": true
+42 == "42.0": true
+42 == "+42.0E0": true
+0 == "0e214987142012": true
+
+"42" == "000042": true
+"42" == "42.0": true
+"42.0" == "+42.0E0": true
+"0" == "0e214987142012": true
+
+42 == " 42": true
+42 == "42 ": false
+42 == "42abc": false
+42 == "abc42": false
+0 == "abc42": false
+
+INF == "INF": true
+-INF == "-INF": true
+NAN == "NAN": false
+INF == "1e1000": true
+-INF == "-1e1000": true
+
+precision=14:
+1.75 <=> "1.75abc": -1
+"1.75" <=> "1.75abc": -1
+precision=0:
+1.75 <=> "1.75abc": 1
+"2" <=> "1.75abc": 1
}
/* }}} */
+static int compare_long_to_string(zend_long lval, zend_string *str) /* {{{ */
+{
+ zend_long str_lval;
+ double str_dval;
+ zend_uchar type = is_numeric_string(ZSTR_VAL(str), ZSTR_LEN(str), &str_lval, &str_dval, 0);
+
+ if (type == IS_LONG) {
+ return lval > str_lval ? 1 : lval < str_lval ? -1 : 0;
+ }
+
+ if (type == IS_DOUBLE) {
+ double diff = (double) lval - str_dval;
+ return ZEND_NORMALIZE_BOOL(diff);
+ }
+
+ zend_string *lval_as_str = zend_long_to_str(lval);
+ int cmp_result = zend_binary_strcmp(
+ ZSTR_VAL(lval_as_str), ZSTR_LEN(lval_as_str), ZSTR_VAL(str), ZSTR_LEN(str));
+ zend_string_release(lval_as_str);
+ return ZEND_NORMALIZE_BOOL(cmp_result);
+}
+/* }}} */
+
+static int compare_double_to_string(double dval, zend_string *str) /* {{{ */
+{
+ zend_long str_lval;
+ double str_dval;
+ zend_uchar type = is_numeric_string(ZSTR_VAL(str), ZSTR_LEN(str), &str_lval, &str_dval, 0);
+
+ if (type == IS_LONG) {
+ double diff = dval - (double) str_lval;
+ return ZEND_NORMALIZE_BOOL(diff);
+ }
+
+ if (type == IS_DOUBLE) {
+ if (dval == str_dval) {
+ return 0;
+ }
+ return ZEND_NORMALIZE_BOOL(dval - str_dval);
+ }
+
+ zend_string *dval_as_str = zend_strpprintf(0, "%.*G", (int) EG(precision), dval);
+ int cmp_result = zend_binary_strcmp(
+ ZSTR_VAL(dval_as_str), ZSTR_LEN(dval_as_str), ZSTR_VAL(str), ZSTR_LEN(str));
+ zend_string_release(dval_as_str);
+ return ZEND_NORMALIZE_BOOL(cmp_result);
+}
+/* }}} */
+
ZEND_API int ZEND_FASTCALL zend_compare(zval *op1, zval *op2) /* {{{ */
{
int converted = 0;
case TYPE_PAIR(IS_STRING, IS_NULL):
return Z_STRLEN_P(op1) == 0 ? 0 : 1;
+ case TYPE_PAIR(IS_LONG, IS_STRING):
+ return compare_long_to_string(Z_LVAL_P(op1), Z_STR_P(op2));
+
+ case TYPE_PAIR(IS_STRING, IS_LONG):
+ return -compare_long_to_string(Z_LVAL_P(op2), Z_STR_P(op1));
+
+ case TYPE_PAIR(IS_DOUBLE, IS_STRING):
+ if (zend_isnan(Z_DVAL_P(op1))) {
+ return 1;
+ }
+
+ return compare_double_to_string(Z_DVAL_P(op1), Z_STR_P(op2));
+
+ case TYPE_PAIR(IS_STRING, IS_DOUBLE):
+ if (zend_isnan(Z_DVAL_P(op2))) {
+ return 1;
+ }
+
+ return -compare_double_to_string(Z_DVAL_P(op2), Z_STR_P(op1));
+
case TYPE_PAIR(IS_OBJECT, IS_NULL):
return 1;
<?php
$obj = new ReflectionExtension('reflection');
$var = $obj->getVersion() ? $obj->getVersion() : null;
-$test = floatval($var) == $var ? true : false;
-var_dump($test);
+var_dump($var);
?>
---EXPECT--
-bool(true)
+--EXPECTF--
+string(9) "%d.%d.%s"
touch ('SplFileInfo_getInode_basic.txt');
$fileInfo = new SplFileInfo('SplFileInfo_getInode_basic.txt');
$result = shell_exec('ls -i SplFileInfo_getInode_basic.txt');
-var_dump($fileInfo->getInode() == $result);
+var_dump($fileInfo->getInode() == (int) $result);
?>
--CLEAN--
[1]=>
string(6) "orange"
}
- ["test"]=>
- int(27)
[1000]=>
string(4) "test"
[1001]=>
string(27) "PHP: Hypertext Preprocessor"
[0]=>
string(3) "PHP"
+ ["test"]=>
+ int(27)
[16777216]=>
float(-0.3333333333333333)
}
[1]=>
string(6) "orange"
}
- ["test"]=>
- int(27)
[1000]=>
string(4) "test"
[1001]=>
string(27) "PHP: Hypertext Preprocessor"
[0]=>
string(3) "PHP"
+ ["test"]=>
+ int(27)
[16777216]=>
float(-0.3333333333333333)
}
array(8) {
[16777216]=>
float(-0.3333333333333333)
+ ["test"]=>
+ int(27)
[0]=>
string(3) "PHP"
[17]=>
string(6) "monkey"
[1000]=>
string(4) "test"
- ["test"]=>
- int(27)
[-1000]=>
array(2) {
[0]=>
array(8) {
[16777216]=>
float(-0.3333333333333333)
+ ["test"]=>
+ int(27)
[0]=>
string(3) "PHP"
[17]=>
string(6) "monkey"
[1000]=>
string(4) "test"
- ["test"]=>
- int(27)
[-1000]=>
array(2) {
[0]=>
string(6) "orange"
}
[1]=>
- int(27)
- [2]=>
string(4) "test"
- [3]=>
+ [2]=>
string(6) "monkey"
- [4]=>
+ [3]=>
string(4) "Test"
- [5]=>
+ [4]=>
string(27) "PHP: Hypertext Preprocessor"
- [6]=>
+ [5]=>
string(3) "PHP"
+ [6]=>
+ int(27)
[7]=>
float(-0.3333333333333333)
}
string(6) "orange"
}
[1]=>
- int(27)
- [2]=>
string(4) "test"
- [3]=>
+ [2]=>
string(6) "monkey"
- [4]=>
+ [3]=>
string(4) "Test"
- [5]=>
+ [4]=>
string(27) "PHP: Hypertext Preprocessor"
- [6]=>
+ [5]=>
string(3) "PHP"
+ [6]=>
+ int(27)
[7]=>
float(-0.3333333333333333)
}
[0]=>
float(-0.3333333333333333)
[1]=>
- string(3) "PHP"
+ int(27)
[2]=>
- string(27) "PHP: Hypertext Preprocessor"
+ string(3) "PHP"
[3]=>
- string(4) "Test"
+ string(27) "PHP: Hypertext Preprocessor"
[4]=>
- string(6) "monkey"
+ string(4) "Test"
[5]=>
- string(4) "test"
+ string(6) "monkey"
[6]=>
- int(27)
+ string(4) "test"
[7]=>
array(2) {
[0]=>
[0]=>
float(-0.3333333333333333)
[1]=>
- string(3) "PHP"
+ int(27)
[2]=>
- string(27) "PHP: Hypertext Preprocessor"
+ string(3) "PHP"
[3]=>
- string(4) "Test"
+ string(27) "PHP: Hypertext Preprocessor"
[4]=>
- string(6) "monkey"
+ string(4) "Test"
[5]=>
- string(4) "test"
+ string(6) "monkey"
[6]=>
- int(27)
+ string(4) "test"
[7]=>
array(2) {
[0]=>
array(0) {
}
-- Callback function with parameter and return --
-array(3) {
+array(5) {
[2]=>
int(2)
[3]=>
float(0.0034)
+ [4]=>
+ string(5) "hello"
+ [5]=>
+ string(5) "value"
["key"]=>
int(4)
}
?>
--EXPECT--
*** Testing array_filter() : usage variations - 'input' containing references ***
-array(3) {
+array(4) {
[0]=>
&array(3) {
[0]=>
[2]=>
int(4)
}
+ [3]=>
+ string(5) "value"
}
array(4) {
[0]=>
--EXPECT--
*** Testing array_filter() : usage variations - Anonymous callback functions ***
Anonymous callback function with regular parameter and statement
-array(3) {
+array(4) {
[3]=>
int(10)
[4]=>
int(100)
[5]=>
int(1000)
+ [6]=>
+ string(5) "Hello"
}
Anonymous callback function with null argument
array(8) {
int(1)
}
int(0)
-array(4) {
+array(2) {
[0]=>
int(0)
[1]=>
int(2)
- [2]=>
- string(3) "php"
- [3]=>
- string(0) ""
}
int(-1)
array(1) {
array(3) {
["row3"]=>
string(1) "1"
- ["row2"]=>
- string(2) "aa"
["row1"]=>
int(2)
+ ["row2"]=>
+ string(2) "aa"
}
[0]=>
string(1) "1"
[1]=>
- string(2) "aa"
- [2]=>
int(2)
+ [2]=>
+ string(2) "aa"
}
array(3) {
[0]=>
*** Testing array_multisort() : Testing all array sort specifiers ***
array(3) {
[0]=>
- int(2)
- [1]=>
string(2) "aa"
+ [1]=>
+ int(2)
[2]=>
string(1) "1"
}
echo "Done\n";
?>
--EXPECT--
-int(1)
+bool(false)
bool(false)
int(1)
int(1)
int(2)
string(1) "c"
-int(1)
+string(1) "c"
bool(false)
Done
bool(false)
bool(false)
-- Iteration 4 --
-int(0)
bool(false)
-int(0)
+bool(false)
+bool(false)
-- Iteration 5 --
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 10 --
-int(0)
bool(false)
-int(0)
+bool(false)
+bool(false)
-- Iteration 11 --
-int(0)
bool(false)
-int(0)
+bool(false)
+bool(false)
-- Iteration 12 --
bool(false)
bool(false)
bool(false)
int(0)
-- Iteration 14 --
-int(0)
bool(false)
-int(0)
+bool(false)
+bool(false)
-- Iteration 15 --
-int(0)
bool(false)
-int(0)
+bool(false)
+bool(false)
-- Iteration 16 --
int(0)
bool(false)
int(0)
int(0)
-- Iteration 18 --
-int(0)
bool(false)
-int(0)
+bool(false)
+bool(false)
-- Iteration 19 --
int(4)
int(4)
int(7)
int(7)
-- Iteration 34 --
-string(1) "a"
+string(0) ""
bool(false)
-string(1) "a"
+string(0) ""
-- Iteration 35 --
-string(1) "a"
+string(0) ""
bool(false)
-string(1) "a"
+string(0) ""
-- Iteration 36 --
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 70 --
-int(2)
bool(false)
-int(2)
+bool(false)
+bool(false)
-- Iteration 71 --
-int(2)
bool(false)
-int(2)
+bool(false)
+bool(false)
-- Iteration 72 --
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 106 --
-int(0)
bool(false)
-int(0)
+bool(false)
+bool(false)
-- Iteration 107 --
-int(0)
bool(false)
-int(0)
+bool(false)
+bool(false)
-- Iteration 108 --
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 124 --
-int(0)
bool(false)
-int(0)
+bool(false)
+bool(false)
-- Iteration 125 --
-int(0)
bool(false)
-int(0)
+bool(false)
+bool(false)
-- Iteration 126 --
int(0)
int(0)
bool(false)
bool(false)
-- Iteration 142 --
-int(0)
bool(false)
-int(0)
+bool(false)
+bool(false)
-- Iteration 143 --
-int(0)
bool(false)
-int(0)
+bool(false)
+bool(false)
-- Iteration 144 --
bool(false)
bool(false)
bool(false)
int(3)
-- Iteration 4 --
-string(3) "key"
+string(1) "y"
int(2)
-string(3) "key"
+string(1) "y"
-- Iteration 5 --
int(3)
bool(false)
bool(false)
string(1) "y"
-- Iteration 11 --
-int(2)
+int(3)
bool(false)
-int(2)
+int(3)
-- Iteration 12 --
string(1) "y"
string(0) ""
bool(false)
*** Testing miscelleneos inputs with array_search() ***
-int(0)
bool(false)
-int(0)
-int(0)
+bool(false)
+bool(false)
+bool(false)
bool(true)
-int(0)
bool(false)
bool(false)
-int(0)
+bool(false)
+bool(false)
bool(false)
Done
- With default sort_flag -
bool(true)
array(2) {
- ["foo"]=>
- int(1)
["bar"]=>
string(3) "baz"
+ ["foo"]=>
+ int(1)
}
- Sort_flag = SORT_REGULAR -
bool(true)
array(2) {
- ["foo"]=>
- int(1)
["bar"]=>
string(3) "baz"
+ ["foo"]=>
+ int(1)
}
-- Iteration 7 --
- With default sort_flag -
bool(true)
array(2) {
- ["bar"]=>
- string(3) "baz"
["foo"]=>
int(1)
+ ["bar"]=>
+ string(3) "baz"
}
- Sort_flag = SORT_REGULAR -
bool(true)
array(2) {
- ["bar"]=>
- string(3) "baz"
["foo"]=>
int(1)
+ ["bar"]=>
+ string(3) "baz"
}
-- Iteration 7 --
bool(false)
bool(false)
-- Iteration 4 --
-bool(true)
bool(false)
-bool(true)
+bool(false)
+bool(false)
-- Iteration 5 --
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 10 --
-bool(true)
bool(false)
-bool(true)
+bool(false)
+bool(false)
-- Iteration 11 --
-bool(true)
bool(false)
-bool(true)
+bool(false)
+bool(false)
-- Iteration 12 --
bool(false)
bool(false)
bool(false)
bool(true)
-- Iteration 14 --
-bool(true)
bool(false)
-bool(true)
+bool(false)
+bool(false)
-- Iteration 15 --
-bool(true)
bool(false)
-bool(true)
+bool(false)
+bool(false)
-- Iteration 16 --
bool(true)
bool(false)
bool(true)
bool(true)
-- Iteration 18 --
-bool(true)
bool(false)
-bool(true)
+bool(false)
+bool(false)
-- Iteration 19 --
bool(true)
bool(true)
bool(false)
bool(false)
-- Iteration 70 --
-bool(true)
bool(false)
-bool(true)
+bool(false)
+bool(false)
-- Iteration 71 --
-bool(true)
bool(false)
-bool(true)
+bool(false)
+bool(false)
-- Iteration 72 --
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 106 --
-bool(true)
bool(false)
-bool(true)
+bool(false)
+bool(false)
-- Iteration 107 --
-bool(true)
bool(false)
-bool(true)
+bool(false)
+bool(false)
-- Iteration 108 --
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 124 --
-bool(true)
bool(false)
-bool(true)
+bool(false)
+bool(false)
-- Iteration 125 --
-bool(true)
bool(false)
-bool(true)
+bool(false)
+bool(false)
-- Iteration 126 --
bool(true)
bool(true)
bool(false)
bool(false)
-- Iteration 142 --
-bool(true)
bool(false)
-bool(true)
+bool(false)
+bool(false)
-- Iteration 143 --
-bool(true)
bool(false)
-bool(true)
+bool(false)
+bool(false)
-- Iteration 144 --
bool(false)
bool(false)
bool(false)
*** Testing miscelleneos inputs with in_array() ***
-bool(true)
bool(false)
-bool(true)
-bool(true)
-bool(true)
-bool(true)
+bool(false)
bool(false)
bool(false)
bool(true)
bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
Done
bool(true)
array(2) {
[0]=>
- int(1)
- [1]=>
string(3) "baz"
+ [1]=>
+ int(1)
}
-- Sort flag = SORT_REGULAR --
bool(true)
array(2) {
[0]=>
- int(1)
- [1]=>
string(3) "baz"
+ [1]=>
+ int(1)
}
-- Iteration 5 --
bool(true)
array(2) {
[0]=>
- string(3) "baz"
- [1]=>
int(1)
+ [1]=>
+ string(3) "baz"
}
- Sort flag = SORT_REGULAR -
bool(true)
array(2) {
[0]=>
- string(3) "baz"
- [1]=>
int(1)
+ [1]=>
+ string(3) "baz"
}
-- Iteration 5 --
[2]=>
array(0) {
}
+ [6]=>
+ array(1) {
+ [0]=>
+ string(0) ""
+ }
[4]=>
array(1) {
[0]=>
[0]=>
int(0)
}
- [6]=>
- array(1) {
- [0]=>
- string(0) ""
- }
[1]=>
array(1) {
[0]=>
[1]=>
array(1) {
[0]=>
- int(-1)
+ string(0) ""
}
[2]=>
array(1) {
[0]=>
- int(0)
+ int(-1)
}
[3]=>
array(1) {
[0]=>
- string(0) ""
+ int(0)
}
[4]=>
array(1) {
$int1 = 679;
$int2 = -67835;
-$valid_int1 = array("679", "679abc", " 679", "679 ", 679.0, 6.79E2, "+679", +679);
-$valid_int2 = array("-67835", "-67835abc", " -67835", "-67835 ", -67835.000, -6.7835E4);
-$invalid_int1 = array("6 7 9", "6y79", 678);
-$invalid_int2 = array("- 67835", "-67,835", "-67 835", "-678y35", -76834);
+$valid_int1 = array("679", " 679", 679.0, 6.79E2, "+679", +679);
+$valid_int2 = array("-67835", " -67835", -67835.000, -6.7835E4);
+$invalid_int1 = array("679abc", "679 ", "6 7 9", "6y79", 678);
+$invalid_int2 = array("-67835abc", "-67835 ", "- 67835", "-67,835", "-67 835", "-678y35", -76834);
$float1 = 57385.45835;
$float2 = -67345.76567;
-$valid_float1 = array("57385.45835", "57385.45835aaa", " 57385.45835", 5.738545835e4);
-$valid_float2 = array("-67345.76567", "-67345.76567aaa", " -67345.76567", -6.734576567E4);
-$invalid_float1 = array("57385. 45835", "57,385.45835", 57385.45834, 5.738545834e4);
-$invalid_float2 = array("- 67345.76567", "-67,345.76567", -67345.76566, -6.734576566E4);
+$valid_float1 = array("57385.45835", " 57385.45835", 5.738545835e4);
+$valid_float2 = array("-67345.76567", " -67345.76567", -6.734576567E4);
+$invalid_float1 = array("57385.45835aaa", "57385. 45835", "57,385.45835", 57385.45834, 5.738545834e4);
+$invalid_float2 = array("-67345.76567aaa", "- 67345.76567", "-67,345.76567", -67345.76566, -6.734576566E4);
$toCompare = array(
$int1 = 679;
$int2 = -67835;
$valid_int1 = array("678", "678abc", " 678", "678 ", 678.0, 6.789E2, "+678", +678);
-$valid_int2 = array("-67836", "-67836abc", " -67836", "-67836 ", -67835.0001, -6.78351E4);
+$valid_int2 = array("-67836", " -67836", -67835.0001, -6.78351E4);
$invalid_int1 = array(679, "679");
-$invalid_int2 = array(-67835, "-67835");
+$invalid_int2 = array(-67835, "-67835", "-67836abc", "-67836 ");
$float1 = 57385.45835;
$float2 = -67345.76567;
$valid_float1 = array("57385.45834", "57385.45834aaa", " 57385.45834", 5.738545834e4);
-$valid_float2 = array("-67345.76568", "-67345.76568aaa", " -67345.76568", -6.734576568E4);
+$valid_float2 = array("-67345.76568", " -67345.76568", -6.734576568E4);
$invalid_float1 = array(57385.45835, 5.738545835e4);
-$invalid_float2 = array(-67345.76567, -6.734576567E4);
+$invalid_float2 = array(-67345.76567, -6.734576567E4, "-67345.76568aaa");
$toCompare = array(
$int1 = 679;
$int2 = -67835;
-$valid_int1 = array("679", "679abc", " 679", 679.0, 6.79E2, "678", "678abc", " 678", 678.0, 6.78E2, 6.789E2, "+678", +678);
-$valid_int2 = array("-67835", "-67835abc", " -67835", -67835.000, -6.7835E4, "-67836", "-67836abc". " -67836", -67835.0001, -6.78351E4, "-67836", -67835.0001, -6.78351E4);
-$invalid_int1 = array(680, "680");
-$invalid_int2 = array(-67834, "-67834");
+$valid_int1 = array("679", " 679", 679.0, 6.79E2, "678", "678abc", " 678", 678.0, 6.78E2, 6.789E2, "+678", +678);
+$valid_int2 = array("-67835", " -67835", -67835.000, -6.7835E4, "-67836", -67835.0001, -6.78351E4, "-67836", -67835.0001, -6.78351E4);
+$invalid_int1 = array(680, "680", "679abc");
+$invalid_int2 = array(-67834, "-67834", "-67835abc", "-67836abc". " -67836");
$float1 = 57385.45835;
$float2 = -67345.76567;
-$valid_float1 = array("57385.45835", "57385.45835aaa", " 57385.45835", 5.738545835e4, "57385.45834", "57385.45834aaa", " 57385.45834", 5.738545834e4);
-$valid_float2 = array("-67345.76567", "-67345.76567aaa", " -67345.76567", -6.734576567E4, "-67345.76568", "-67345.76568aaa", " -67345.76568", -6.734576568E4);
-$invalid_float1 = array(57385.45836, 5.738545836e4);
-$invalid_float2 = array(-67345.76564, -6.734576564E4);
+$valid_float1 = array("57385.45835", " 57385.45835", 5.738545835e4, "57385.45834", "57385.45834aaa", " 57385.45834", 5.738545834e4);
+$valid_float2 = array("-67345.76567", " -67345.76567", -6.734576567E4, "-67345.76568", " -67345.76568", -6.734576568E4);
+$invalid_float1 = array(57385.45836, 5.738545836e4, "57385.45835aaa");
+$invalid_float2 = array(-67345.76564, -6.734576564E4, "-67345.76567aaa", "-67345.76568aaa");
$toCompare = array(
$int1 = 677;
$int2 = -67837;
$valid_int1 = array("678", "678abc", " 678", "678 ", 678.0, 6.789E2, "+678", +678);
-$valid_int2 = array("-67836", "-67836abc", " -67836", "-67836 ", -67835.0001, -6.78351E4);
+$valid_int2 = array("-67836", " -67836", -67835.0001, -6.78351E4);
$invalid_int1 = array(676, "676");
-$invalid_int2 = array(-67837, "-67837");
+$invalid_int2 = array(-67837, "-67837", "-67836abc", "-67836 ");
$float1 = 57385.45835;
$float2 = -67345.76567;
$valid_float1 = array("57385.45836", "57385.45836aaa", " 57385.45836", 5.738545836e4);
-$valid_float2 = array("-67345.76566", "-67345.76566aaa", " -67345.76566", -6.734576566E4);
+$valid_float2 = array("-67345.76566", " -67345.76566", -6.734576566E4);
$invalid_float1 = array(57385.45835, 5.738545835e4);
-$invalid_float2 = array(-67345.76567, -6.734576567E4);
+$invalid_float2 = array(-67345.76567, -6.734576567E4, "-67345.76566aaa");
$toCompare = array(
$int1 = 678;
$int2 = -67836;
$valid_int1 = array("679", "679abc", " 679", 679.0, 6.79E2, "678", "678abc", " 678", 678.0, 6.78E2, 6.789E2, "+678", +678);
-$valid_int2 = array("-67835", "-67835abc", " -67835", -67835.000, -6.7835E4, "-67836", "-67836abc". " -67836", -67835.0001, -6.78351E4, "-67836", -67835.0001, -6.78351E4);
+$valid_int2 = array("-67835", " -67835", -67835.000, -6.7835E4, "-67836", "-67836abc". " -67836", -67835.0001, -6.78351E4, "-67836", -67835.0001, -6.78351E4);
$invalid_int1 = array(677, "677");
-$invalid_int2 = array(-67874, "-67837");
+$invalid_int2 = array(-67874, "-67837", "-67835abc");
$float1 = 57385.45834;
$float2 = -67345.76568;
$valid_float1 = array("57385.45835", "57385.45835aaa", " 57385.45835", 5.738545835e4, "57385.45834", "57385.45834aaa", " 57385.45834", 5.738545834e4);
-$valid_float2 = array("-67345.76567", "-67345.76567aaa", " -67345.76567", -6.734576567E4, "-67345.76568", "-67345.76568aaa", " -67345.76568", -6.734576568E4);
+$valid_float2 = array("-67345.76567", " -67345.76567", -6.734576567E4, "-67345.76568", "-67345.76568aaa", " -67345.76568", -6.734576568E4);
$invalid_float1 = array(57385.45833, 5.738545833e4);
-$invalid_float2 = array(-67345.76569, -6.734576569E4);
+$invalid_float2 = array(-67345.76569, -6.734576569E4, "-67345.76567aaa");
$toCompare = array(
true, $valid_true, $valid_false,
$int1 = 679;
$int2 = -67835;
-$valid_int1 = array("6 7 9", "6y79", 678);
-$valid_int2 = array("- 67835", "-67,835", "-67 835", "-678y35", -76834);
-$invalid_int1 = array("679", "679abc", " 679", "679 ", 679.0, 6.79E2, "+679", +679);
-$invalid_int2 = array("-67835", "-67835abc", " -67835", "-67835 ", -67835.000, -6.7835E4);
+$valid_int1 = array("679abc", "679 ", "6 7 9", "6y79", 678);
+$valid_int2 = array("-67835abc", "-67835 ", "- 67835", "-67,835", "-67 835", "-678y35", -76834);
+$invalid_int1 = array("679", " 679", 679.0, 6.79E2, "+679", +679);
+$invalid_int2 = array("-67835", " -67835", -67835.000, -6.7835E4);
$float1 = 57385.45835;
$float2 = -67345.76567;
-$valid_float1 = array("57385. 45835", "57,385.45835", 57385.45834, 5.738545834e4);
-$valid_float2 = array("- 67345.76567", "-67,345.76567", -67345.76566, -6.734576566E4);
-$invalid_float1 = array("57385.45835", "57385.45835aaa", " 57385.45835", 5.738545835e4);
-$invalid_float2 = array("-67345.76567", "-67345.76567aaa", " -67345.76567", -6.734576567E4);
+$valid_float1 = array("57385.45835aaa", "57385. 45835", "57,385.45835", 57385.45834, 5.738545834e4);
+$valid_float2 = array("-67345.76567aaa", "- 67345.76567", "-67,345.76567", -67345.76566, -6.734576566E4);
+$invalid_float1 = array("57385.45835", " 57385.45835", 5.738545835e4);
+$invalid_float2 = array("-67345.76567", " -67345.76567", -6.734576567E4);
$toCompare = array(
$int1 = 679;
$int2 = -67835;
$valid_int1 = array("678", "678abc", " 678", "678 ", 678.0, 6.789E2, "+678", +678);
-$valid_int2 = array("-67836", "-67836abc", " -67836", "-67836 ", -67835.0001, -6.78351E4);
+$valid_int2 = array("-67836", " -67836", -67835.0001, -6.78351E4);
$invalid_int1 = array(679, "679");
-$invalid_int2 = array(-67835, "-67835");
+$invalid_int2 = array(-67835, "-67835", "-67836abc", "-67836 ");
$float1 = 57385.45835;
$float2 = -67345.76567;
$valid_float1 = array("57385.45834", "57385.45834aaa", " 57385.45834", 5.738545834e4);
-$valid_float2 = array("-67345.76568", "-67345.76568aaa", " -67345.76568", -6.734576568E4);
+$valid_float2 = array("-67345.76568", " -67345.76568", -6.734576568E4);
$invalid_float1 = array(57385.45835, 5.738545835e4);
-$invalid_float2 = array(-67345.76567, -6.734576567E4);
+$invalid_float2 = array(-67345.76567, -6.734576567E4, "-67345.76568aaa");
$toCompare = array(
--> Testing .9.:
int(0)
float(0.9)
-bool(true)
+bool(false)
--> Testing 9..:
int(9)