]> granicus.if.org Git - php/commitdiff
Improved number to string comparison semantics
authorNikita Popov <nikita.ppv@gmail.com>
Thu, 21 Feb 2019 16:38:25 +0000 (17:38 +0100)
committerNikita Popov <nikita.ppv@gmail.com>
Wed, 22 Jul 2020 10:23:49 +0000 (12:23 +0200)
RFC: https://wiki.php.net/rfc/string_to_number_comparison

Closes GH-3886.

47 files changed:
UPGRADING
Zend/tests/compare_001.phpt
Zend/tests/compare_001_64bit.phpt
Zend/tests/compare_003.phpt
Zend/tests/compare_003_64bit.phpt
Zend/tests/compare_004.phpt
Zend/tests/compare_004_64bit.phpt
Zend/tests/compare_005.phpt
Zend/tests/compare_005_64bit.phpt
Zend/tests/compare_006.phpt
Zend/tests/compare_006_64bit.phpt
Zend/tests/string_to_number_comparison.phpt [new file with mode: 0644]
Zend/zend_operators.c
ext/reflection/tests/ReflectionExtension_getVersion_basic.phpt
ext/spl/tests/SplFileInfo_getInode_basic.phpt
ext/standard/tests/array/002.phpt
ext/standard/tests/array/array_filter_variation4.phpt
ext/standard/tests/array/array_filter_variation6.phpt
ext/standard/tests/array/array_filter_variation7.phpt
ext/standard/tests/array/array_keys_variation_003.phpt
ext/standard/tests/array/array_multisort_basic1.phpt
ext/standard/tests/array/array_multisort_variation5.phpt
ext/standard/tests/array/array_multisort_variation6.phpt
ext/standard/tests/array/array_search1.phpt
ext/standard/tests/array/array_search_variation1.phpt
ext/standard/tests/array/array_search_variation2.phpt
ext/standard/tests/array/array_search_variation4.phpt
ext/standard/tests/array/arsort_variation11.phpt
ext/standard/tests/array/arsort_variation9.phpt
ext/standard/tests/array/asort_variation11.phpt
ext/standard/tests/array/asort_variation9.phpt
ext/standard/tests/array/in_array_variation1.phpt
ext/standard/tests/array/in_array_variation4.phpt
ext/standard/tests/array/rsort_variation11.phpt
ext/standard/tests/array/rsort_variation9.phpt
ext/standard/tests/array/sort_variation11.phpt
ext/standard/tests/array/sort_variation9.phpt
ext/standard/tests/array/uasort_variation6.phpt
ext/standard/tests/array/usort_variation6.phpt
tests/lang/operators/operator_equals_basic.phpt
tests/lang/operators/operator_gt_basic.phpt
tests/lang/operators/operator_gt_or_equal_basic.phpt
tests/lang/operators/operator_lt_basic.phpt
tests/lang/operators/operator_lt_or_equal_basic.phpt
tests/lang/operators/operator_notequals_basic.phpt
tests/lang/operators/operator_spaceship_basic.phpt
tests/lang/string_decimals_001.phpt

index f233cd65f94e4bc04fa3ea7288dd614dab63154b..eed08ad8effcc628d8e53e9c5da80848e5e113f4 100644 (file)
--- a/UPGRADING
+++ b/UPGRADING
@@ -199,6 +199,11 @@ PHP 8.0 UPGRADE NOTES
     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
index dcf305d742451fc53b0a3ff2ce31c77912f8060c..adab47f76824813759ee9d81e5e0e281db8cdbec 100644 (file)
@@ -70,7 +70,7 @@ string(0) "" != array(3) {  [0]=>  int(1)  [1]=>  int(2)  [2]=>  int(3)}
 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"
@@ -130,11 +130,11 @@ float(2.5) != array(0) {}
 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
@@ -156,7 +156,7 @@ 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(0)
 string(6) "string" == string(6) "string"
 string(6) "string" != string(3) "123"
 string(6) "string" != string(3) "2.5"
index 2536073089e70193624ac4265f0cce1a6da4455a..abccceb8de76339ba81031fa0f1f2ea47bff4bee 100644 (file)
@@ -70,7 +70,7 @@ string(0) "" != array(3) {  [0]=>  int(1)  [1]=>  int(2)  [2]=>  int(3)}
 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"
@@ -130,11 +130,11 @@ float(2.5) != array(0) {}
 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
@@ -156,7 +156,7 @@ 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(0)
 string(6) "string" == string(6) "string"
 string(6) "string" != string(3) "123"
 string(6) "string" != string(3) "2.5"
index c52df79634836fec20f7416c59d232980fac673c..a47335633e0524894b6a4eb10d11e8eb17440df4 100644 (file)
@@ -81,14 +81,14 @@ string(0) "" <= object(stdClass)#1 (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
@@ -111,7 +111,7 @@ float(2.5) > string(0) ""
 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
@@ -130,7 +130,7 @@ float(2.5) <= array(0) {}
 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)
@@ -154,9 +154,9 @@ int(0) > int(-2147483648)
 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"
@@ -347,7 +347,7 @@ array(0) {} <= array(0) {}
 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)
index af1878285707a0159b2e0ed7d62770a43cdf872e..359f53a861999ffb02ad23d1faa8445c811a68c9 100644 (file)
@@ -81,14 +81,14 @@ string(0) "" <= object(stdClass)#%d (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
@@ -111,7 +111,7 @@ float(2.5) > string(0) ""
 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
@@ -130,7 +130,7 @@ float(2.5) <= array(0) {}
 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)
@@ -154,9 +154,9 @@ int(0) > int(-9223372036854775808)
 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"
@@ -347,7 +347,7 @@ array(0) {} <= array(0) {}
 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)
index f53f22a9e5e18a214f3294588f795b3d6f1119b1..e6755101c27ef77de8683be3768408f7a6688e1a 100644 (file)
@@ -70,7 +70,7 @@ string(0) "" < array(3) {  [0]=>  int(1)  [1]=>  int(2)  [2]=>  int(3)}
 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"
@@ -81,14 +81,14 @@ string(0) "" < object(stdClass)#1 (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
@@ -111,7 +111,7 @@ float(2.5) >= string(0) ""
 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
@@ -134,7 +134,7 @@ 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
@@ -154,8 +154,8 @@ int(0) >= int(-2147483648)
 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"
@@ -347,7 +347,7 @@ array(0) {} >= array(0) {}
 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)
index cdd8802996364b9da45be7d3e7217b2d73cfa3e5..db44ef4737295deeaa5056ccbbdf923ae51d3979 100644 (file)
@@ -70,7 +70,7 @@ string(0) "" < array(3) {  [0]=>  int(1)  [1]=>  int(2)  [2]=>  int(3)}
 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"
@@ -81,14 +81,14 @@ string(0) "" < object(stdClass)#%d (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
@@ -111,7 +111,7 @@ float(2.5) >= string(0) ""
 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
@@ -134,7 +134,7 @@ 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
@@ -154,8 +154,8 @@ int(0) >= int(-9223372036854775808)
 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"
@@ -347,7 +347,7 @@ array(0) {} >= array(0) {}
 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)
index 87241a50e2f391dfa135cc9f0d3a18317b0550d2..0b5b0ed7fd670efc84b54928048acf0535edaaaf 100644 (file)
@@ -70,7 +70,7 @@ string(0) "" < array(3) {  [0]=>  int(1)  [1]=>  int(2)  [2]=>  int(3)}
 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"
@@ -81,14 +81,14 @@ string(0) "" < object(stdClass)#1 (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
@@ -111,7 +111,7 @@ float(2.5) >= string(0) ""
 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
@@ -134,7 +134,7 @@ 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
@@ -154,8 +154,8 @@ int(0) >= int(-2147483648)
 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"
@@ -347,7 +347,7 @@ array(0) {} >= array(0) {}
 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)
index ab3d0cf0bc215a0164e1b087a1e48ed70ef9196c..c29bd332bf4074c3f74e0fccaec1d17c30cab287 100644 (file)
@@ -70,7 +70,7 @@ string(0) "" < array(3) {  [0]=>  int(1)  [1]=>  int(2)  [2]=>  int(3)}
 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"
@@ -81,14 +81,14 @@ string(0) "" < object(stdClass)#%d (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
@@ -111,7 +111,7 @@ float(2.5) >= string(0) ""
 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
@@ -134,7 +134,7 @@ 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
@@ -154,8 +154,8 @@ int(0) >= int(-9223372036854775808)
 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"
@@ -347,7 +347,7 @@ array(0) {} >= array(0) {}
 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)
index 824c162b8280f4a727440ccc8e15e2141f108f55..4657a0d0a5797cdc5500422970c2a7231b9f0f9e 100644 (file)
@@ -81,14 +81,14 @@ string(0) "" <= object(stdClass)#1 (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
@@ -111,7 +111,7 @@ float(2.5) > string(0) ""
 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
@@ -130,7 +130,7 @@ float(2.5) <= array(0) {}
 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)
@@ -154,9 +154,9 @@ int(0) > int(-2147483648)
 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"
@@ -347,7 +347,7 @@ array(0) {} <= array(0) {}
 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)
index f85b0d28c0f48d5473f097619dc1389dbfea5afe..a284dc1f45fd6e5140e279db0e432af86c05682d 100644 (file)
@@ -81,14 +81,14 @@ string(0) "" <= object(stdClass)#%d (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
@@ -111,7 +111,7 @@ float(2.5) > string(0) ""
 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
@@ -130,7 +130,7 @@ float(2.5) <= array(0) {}
 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)
@@ -154,9 +154,9 @@ int(0) > int(-9223372036854775808)
 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"
@@ -347,7 +347,7 @@ array(0) {} <= array(0) {}
 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)
diff --git a/Zend/tests/string_to_number_comparison.phpt b/Zend/tests/string_to_number_comparison.phpt
new file mode 100644 (file)
index 0000000..a64b1c4
--- /dev/null
@@ -0,0 +1,92 @@
+--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
index 9fdc006e644c0c9a6d8e8aa548fcdb878e2b3a5f..a468962491568022b69cbe970e91512c982a8dca 100644 (file)
@@ -1991,6 +1991,55 @@ ZEND_API int ZEND_FASTCALL compare_function(zval *result, zval *op1, zval *op2)
 }
 /* }}} */
 
+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;
@@ -2042,6 +2091,26 @@ ZEND_API int ZEND_FASTCALL zend_compare(zval *op1, zval *op2) /* {{{ */
                        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;
 
index 0139a1c4ae80b6351721d60b355d8aeca06114f1..cdde9804c633e41cccfd2efc0ca2b91f6d1c7886 100644 (file)
@@ -7,8 +7,7 @@ Leon Luijkx <leon@phpgg.nl>
 <?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"
index 5e2a110879643e285028b664fd790c3013dc57b2..1b2649dcee600f5cb71a82e16bb3a35445d45b41 100644 (file)
@@ -19,7 +19,7 @@ if (substr(PHP_OS, 0, 3) == 'WIN') die("skip this test not for Windows platforms
 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--
index 0f799f396c5243d333e8deb530def8e220e44353..fdb838deb19ddb45cc0c86ac532a8b2bfe28be37 100644 (file)
@@ -65,8 +65,6 @@ array(8) {
     [1]=>
     string(6) "orange"
   }
-  ["test"]=>
-  int(27)
   [1000]=>
   string(4) "test"
   [1001]=>
@@ -77,6 +75,8 @@ array(8) {
   string(27) "PHP: Hypertext Preprocessor"
   [0]=>
   string(3) "PHP"
+  ["test"]=>
+  int(27)
   [16777216]=>
   float(-0.3333333333333333)
 }
@@ -89,8 +89,6 @@ array(8) {
     [1]=>
     string(6) "orange"
   }
-  ["test"]=>
-  int(27)
   [1000]=>
   string(4) "test"
   [1001]=>
@@ -101,6 +99,8 @@ array(8) {
   string(27) "PHP: Hypertext Preprocessor"
   [0]=>
   string(3) "PHP"
+  ["test"]=>
+  int(27)
   [16777216]=>
   float(-0.3333333333333333)
 }
@@ -170,6 +170,8 @@ No second argument:
 array(8) {
   [16777216]=>
   float(-0.3333333333333333)
+  ["test"]=>
+  int(27)
   [0]=>
   string(3) "PHP"
   [17]=>
@@ -180,8 +182,6 @@ array(8) {
   string(6) "monkey"
   [1000]=>
   string(4) "test"
-  ["test"]=>
-  int(27)
   [-1000]=>
   array(2) {
     [0]=>
@@ -194,6 +194,8 @@ Using SORT_REGULAR:
 array(8) {
   [16777216]=>
   float(-0.3333333333333333)
+  ["test"]=>
+  int(27)
   [0]=>
   string(3) "PHP"
   [17]=>
@@ -204,8 +206,6 @@ array(8) {
   string(6) "monkey"
   [1000]=>
   string(4) "test"
-  ["test"]=>
-  int(27)
   [-1000]=>
   array(2) {
     [0]=>
@@ -480,17 +480,17 @@ array(8) {
     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)
 }
@@ -504,17 +504,17 @@ array(8) {
     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)
 }
@@ -585,17 +585,17 @@ array(8) {
   [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]=>
@@ -609,17 +609,17 @@ array(8) {
   [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]=>
index 585e44d1cdf58adc28952c6ef5066d91ba343367..6bcac4eedd5f0a3ddc29f060229ca370d71aa237 100644 (file)
@@ -78,11 +78,15 @@ array(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)
 }
index b125ac9281a98308e19f1244ec9e226b7c67b7ef..a2e4247fdcf369eb84c879bfe29c8cc68bcbfc1c 100644 (file)
@@ -33,7 +33,7 @@ echo "Done"
 ?>
 --EXPECT--
 *** Testing array_filter() : usage variations - 'input' containing references ***
-array(3) {
+array(4) {
   [0]=>
   &array(3) {
     [0]=>
@@ -54,6 +54,8 @@ array(3) {
     [2]=>
     int(4)
   }
+  [3]=>
+  string(5) "value"
 }
 array(4) {
   [0]=>
index 805f31424498b2fcc003e972555d63feb3ddbb05..91d0308d713920c2266f43d98e514ab8b7104088 100644 (file)
@@ -27,13 +27,15 @@ echo "Done"
 --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) {
index 3163820de00a6ba44d5c1de2c6192f3bed9827de..174bfd302a41863c26235cb5175aa0052baf3697 100644 (file)
@@ -54,15 +54,11 @@ array(1) {
   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) {
index 23c64ee7a5064f7c965cbc43eed5bc32539eb85c..df61e3677b72fb29d0ee0a6852eee81e5509cbe7 100644 (file)
@@ -45,8 +45,8 @@ bool(true)
 array(3) {
   ["row3"]=>
   string(1) "1"
-  ["row2"]=>
-  string(2) "aa"
   ["row1"]=>
   int(2)
+  ["row2"]=>
+  string(2) "aa"
 }
index cbf0cf6f923758dd9409420d8bd8a9ad5e9c2246..8f01adec4079952b0b299471b0c8913e24c058c5 100644 (file)
@@ -23,9 +23,9 @@ array(3) {
   [0]=>
   string(1) "1"
   [1]=>
-  string(2) "aa"
-  [2]=>
   int(2)
+  [2]=>
+  string(2) "aa"
 }
 array(3) {
   [0]=>
index c4f98337ede05e55b0d0059610bc9727cd24d3da..a9936ccb269316d355eefd35b8c77154f411a72b 100644 (file)
@@ -21,9 +21,9 @@ var_dump($ar);
 *** Testing array_multisort() : Testing  all array sort specifiers ***
 array(3) {
   [0]=>
-  int(2)
-  [1]=>
   string(2) "aa"
+  [1]=>
+  int(2)
   [2]=>
   string(1) "1"
 }
index 10c1672e54939570ed8572422d326b6f26bec239..33d9c75db0f2d72b5fd546a323639311acebc7b0 100644 (file)
@@ -17,12 +17,12 @@ var_dump(array_search(-1,$a, true));
 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
index 83b8139085b0f153d9f73359e5068182a3167cb2..d62501f41898c7499184d5b7a985d4b09b4aa01d 100644 (file)
@@ -69,9 +69,9 @@ bool(false)
 bool(false)
 bool(false)
 -- Iteration 4 --
-int(0)
 bool(false)
-int(0)
+bool(false)
+bool(false)
 -- Iteration 5 --
 bool(false)
 bool(false)
@@ -93,13 +93,13 @@ 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)
@@ -109,13 +109,13 @@ int(0)
 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)
@@ -125,9 +125,9 @@ int(0)
 int(0)
 int(0)
 -- Iteration 18 --
-int(0)
 bool(false)
-int(0)
+bool(false)
+bool(false)
 -- Iteration 19 --
 int(4)
 int(4)
@@ -189,13 +189,13 @@ int(7)
 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)
@@ -333,13 +333,13 @@ 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)
@@ -477,13 +477,13 @@ 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)
@@ -549,13 +549,13 @@ 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)
@@ -621,13 +621,13 @@ bool(false)
 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)
index 25ff1d3e9bf6c9cda63d4809f443f13e724d90f7..84928c5922d6bc3bf2d288955c73c7d52329143e 100644 (file)
@@ -58,9 +58,9 @@ int(3)
 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)
@@ -86,9 +86,9 @@ string(1) "y"
 bool(false)
 string(1) "y"
 -- Iteration 11 --
-int(2)
+int(3)
 bool(false)
-int(2)
+int(3)
 -- Iteration 12 --
 string(1) "y"
 string(0) ""
index c3e390a85677300eb927e90842ca93ed7718c5a9..fa5cdf622d1958ccf8d14b6c5cc7fa781106f2b0 100644 (file)
@@ -55,14 +55,14 @@ int(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
index cbdcfc41ba42690d4d460774449f493906203bf7..10958375d9fd4f6e57f640531f2b797ce58ea95d 100644 (file)
Binary files a/ext/standard/tests/array/arsort_variation11.phpt and b/ext/standard/tests/array/arsort_variation11.phpt differ
index b52ff7bca62b98fc1cd01d774fc32ecc454e2fa7..cfad3b44dc874763330d8b3c663b162b59c5d09a 100644 (file)
@@ -194,18 +194,18 @@ array(6) {
 - 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 --
index 492491b03d05d37d06c11f05f46991d6ca98e477..e614d15433e36c8791056b2ea97267c7ad108f0c 100644 (file)
Binary files a/ext/standard/tests/array/asort_variation11.phpt and b/ext/standard/tests/array/asort_variation11.phpt differ
index cf68d66054340522675d85991a490e887e967945..ff2d9077b8f4c91773d524490ca74f3fffb03be0 100644 (file)
@@ -194,18 +194,18 @@ array(6) {
 - 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 --
index c80ea13496d4407aa931edb7b8afdb266ad32d51..6bb0b36d34c8b5672c79efc617b19be810ed3ff5 100644 (file)
@@ -69,9 +69,9 @@ bool(false)
 bool(false)
 bool(false)
 -- Iteration 4 --
-bool(true)
 bool(false)
-bool(true)
+bool(false)
+bool(false)
 -- Iteration 5 --
 bool(false)
 bool(false)
@@ -93,13 +93,13 @@ 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)
@@ -109,13 +109,13 @@ bool(true)
 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)
@@ -125,9 +125,9 @@ bool(true)
 bool(true)
 bool(true)
 -- Iteration 18 --
-bool(true)
 bool(false)
-bool(true)
+bool(false)
+bool(false)
 -- Iteration 19 --
 bool(true)
 bool(true)
@@ -333,13 +333,13 @@ bool(false)
 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)
@@ -477,13 +477,13 @@ 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)
@@ -549,13 +549,13 @@ 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)
@@ -621,13 +621,13 @@ bool(false)
 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)
index 8a587f847ff6596e19f0828bc3a0bfed7ed14478..c7c91278db62fd8d1e588a902bd88e3e80f97fe0 100644 (file)
@@ -57,14 +57,14 @@ bool(true)
 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
index 67571c26db98bdc7d62c5e029f7f4837c4cfa10d..479f90f03315ddfad5c8b83bf29a0c67278587df 100644 (file)
Binary files a/ext/standard/tests/array/rsort_variation11.phpt and b/ext/standard/tests/array/rsort_variation11.phpt differ
index 4d0f45a0055c3d8f04765f8dcc3b7fba31197b36..f46c22707e695a7742a922e3596f572306e4951e 100644 (file)
@@ -197,17 +197,17 @@ array(6) {
 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 --
index fce546bdbcc0e87720f1503d13e84b34413b3a5f..f72a79bf9b55db7efaeffcb4e0438a692df24c64 100644 (file)
Binary files a/ext/standard/tests/array/sort_variation11.phpt and b/ext/standard/tests/array/sort_variation11.phpt differ
index 8c4be0997c4460a1818a05705028e9835a63047f..7791a81ca5c1d51a303cfa39e6286921f5d38752 100644 (file)
@@ -196,17 +196,17 @@ array(6) {
 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 --
index 8b6b0d6d191ad4deb1d182deddc3ee753b0f4f7d..31d23cc5e4f328b3f1fa6c69eb3d9a64d94b0b2d 100644 (file)
@@ -45,6 +45,11 @@ array(8) {
   [2]=>
   array(0) {
   }
+  [6]=>
+  array(1) {
+    [0]=>
+    string(0) ""
+  }
   [4]=>
   array(1) {
     [0]=>
@@ -55,11 +60,6 @@ array(8) {
     [0]=>
     int(0)
   }
-  [6]=>
-  array(1) {
-    [0]=>
-    string(0) ""
-  }
   [1]=>
   array(1) {
     [0]=>
index f66ef393788830bd8a7bdd8b1fb8f6f26417949e..33363e1eb187c9baa753e86bda4ca81d61047c19 100644 (file)
@@ -61,17 +61,17 @@ array(8) {
   [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) {
index 08bb9accbe808a253289172a9cccdb872b04faed..3f179a0a4c284effd467e58955ea655e3bbc8617 100644 (file)
@@ -8,17 +8,17 @@ $valid_false = array(0, "", 0.0, array(), NULL);
 
 $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(
index 10e711a5a578e853c5d868dc2581baff348aa986..70b8fbcdd987c31f5cb2cd8e933a616464a97d91 100644 (file)
@@ -8,16 +8,16 @@ $valid_false = array(0, "", 0.0, array(), NULL);
 $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(
index 98f7aa543a645289df9ae481cbe9a0d9ff2c2c78..442e72165902323a5aeaa26697db429e2b2e6140 100644 (file)
@@ -7,17 +7,17 @@ $valid_false = array(0, "", 0.0, array(), NULL);
 
 $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(
 
index 3893a4c15206a496d6a5e0334f0fa785f7faa938..98685506c7ebe9daef33b9d5183f009f97c9a3c5 100644 (file)
@@ -8,16 +8,16 @@ $valid_false = array(0, "", 0.0, array(), NULL);
 $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(
index db09d38776e5141838cf87fbd80f58f6426f5185..bc8b1f31fe52b719c6cd024490c39937b2cec124 100644 (file)
@@ -8,16 +8,16 @@ $valid_false = array(0, "", 0.0, array(), NULL);
 $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,
index b1202d0938fa1a77c68b13923242df1cd55cb3f5..b254e6e90ce5fe8ec37658f931d47b042ddd96b6 100644 (file)
@@ -8,17 +8,17 @@ $valid_false = array(0, "", 0.0, array(), NULL);
 
 $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(
index 650cf97482182b63ed8c320dfa7726084bac0fec..1014c46191f124c3937b1bb71c90eb44255facdb 100644 (file)
@@ -8,16 +8,16 @@ $valid_false = array(0, "", 0.0, array(), NULL);
 $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(
index c82e1e8ee970c10ef38f631247f43a5b05ad7972..2d01fce6a54417667561e45766b7580d978cfd62 100644 (file)
@@ -24,7 +24,7 @@ bool(false)
 --> Testing .9.:
 int(0)
 float(0.9)
-bool(true)
+bool(false)
 
 --> Testing 9..:
 int(9)