mirror of
https://github.com/php/php-src.git
synced 2024-11-23 18:04:36 +08:00
acbf7802af
RFC: https://wiki.php.net/rfc/string_to_number_comparison Closes GH-3886.
390 lines
14 KiB
PHP
390 lines
14 KiB
PHP
--TEST--
|
|
comparing different variables (less than)
|
|
--SKIPIF--
|
|
<?php if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only"); ?>
|
|
--FILE--
|
|
<?php
|
|
|
|
class test {
|
|
}
|
|
|
|
$a = array(
|
|
array(1,2,3),
|
|
"",
|
|
1,
|
|
2.5,
|
|
0,
|
|
"string",
|
|
"123",
|
|
"2.5",
|
|
NULL,
|
|
true,
|
|
false,
|
|
new stdclass,
|
|
new stdclass,
|
|
new test,
|
|
array(),
|
|
-PHP_INT_MAX-1,
|
|
(string)(-PHP_INT_MAX-1),
|
|
);
|
|
|
|
$var_cnt = count($a);
|
|
|
|
function my_dump($var) {
|
|
ob_start();
|
|
var_dump($var);
|
|
$buf = ob_get_clean();
|
|
echo str_replace("\n", "", $buf);
|
|
}
|
|
|
|
foreach($a as $var) {
|
|
for ($i = 0; $i < $var_cnt; $i++) {
|
|
my_dump($var);
|
|
echo ($var < $a[$i]) ? " < " : " >= ";
|
|
my_dump($a[$i]);
|
|
echo "\n";
|
|
}
|
|
}
|
|
|
|
echo "Done\n";
|
|
?>
|
|
--EXPECTF--
|
|
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)} >= array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
|
|
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)} >= string(0) ""
|
|
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)} >= int(1)
|
|
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)} >= float(2.5)
|
|
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)} >= int(0)
|
|
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)} >= string(6) "string"
|
|
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)} >= string(3) "123"
|
|
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)} >= string(3) "2.5"
|
|
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)} >= NULL
|
|
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)} >= bool(true)
|
|
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)} >= bool(false)
|
|
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)} < object(stdClass)#%d (0) {}
|
|
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)} < object(stdClass)#%d (0) {}
|
|
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)} < object(test)#%d (0) {}
|
|
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)} >= array(0) {}
|
|
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)} >= int(-9223372036854775808)
|
|
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)} >= string(20) "-9223372036854775808"
|
|
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) "" < string(6) "string"
|
|
string(0) "" < string(3) "123"
|
|
string(0) "" < string(3) "2.5"
|
|
string(0) "" >= NULL
|
|
string(0) "" < bool(true)
|
|
string(0) "" >= bool(false)
|
|
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) "" < 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(3) "123"
|
|
int(1) < string(3) "2.5"
|
|
int(1) >= NULL
|
|
int(1) >= bool(true)
|
|
int(1) >= bool(false)
|
|
int(1)
|
|
Notice: Object of class stdClass could not be converted to int in %s on line %d
|
|
>= object(stdClass)#%d (0) {}
|
|
int(1)
|
|
Notice: Object of class stdClass could not be converted to int in %s on line %d
|
|
>= object(stdClass)#%d (0) {}
|
|
int(1)
|
|
Notice: Object of class test could not be converted to int in %s on line %d
|
|
>= object(test)#%d (0) {}
|
|
int(1) < array(0) {}
|
|
int(1) >= int(-9223372036854775808)
|
|
int(1) >= string(20) "-9223372036854775808"
|
|
float(2.5) < array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
|
|
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(3) "123"
|
|
float(2.5) >= string(3) "2.5"
|
|
float(2.5) >= NULL
|
|
float(2.5) >= bool(true)
|
|
float(2.5) >= bool(false)
|
|
float(2.5)
|
|
Notice: Object of class stdClass could not be converted to float in %s on line %d
|
|
>= object(stdClass)#%d (0) {}
|
|
float(2.5)
|
|
Notice: Object of class stdClass could not be converted to float in %s on line %d
|
|
>= object(stdClass)#%d (0) {}
|
|
float(2.5)
|
|
Notice: Object of class test could not be converted to float in %s on line %d
|
|
>= object(test)#%d (0) {}
|
|
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) < int(1)
|
|
int(0) < float(2.5)
|
|
int(0) >= int(0)
|
|
int(0) < string(6) "string"
|
|
int(0) < string(3) "123"
|
|
int(0) < string(3) "2.5"
|
|
int(0) >= NULL
|
|
int(0) < bool(true)
|
|
int(0) >= bool(false)
|
|
int(0)
|
|
Notice: Object of class stdClass could not be converted to int in %s on line %d
|
|
< object(stdClass)#%d (0) {}
|
|
int(0)
|
|
Notice: Object of class stdClass could not be converted to int in %s on line %d
|
|
< object(stdClass)#%d (0) {}
|
|
int(0)
|
|
Notice: Object of class test could not be converted to int in %s on line %d
|
|
< object(test)#%d (0) {}
|
|
int(0) < array(0) {}
|
|
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" >= string(6) "string"
|
|
string(6) "string" >= string(3) "123"
|
|
string(6) "string" >= string(3) "2.5"
|
|
string(6) "string" >= NULL
|
|
string(6) "string" >= bool(true)
|
|
string(6) "string" >= bool(false)
|
|
string(6) "string" < object(stdClass)#%d (0) {}
|
|
string(6) "string" < object(stdClass)#%d (0) {}
|
|
string(6) "string" < object(test)#%d (0) {}
|
|
string(6) "string" < array(0) {}
|
|
string(6) "string" >= int(-9223372036854775808)
|
|
string(6) "string" >= string(20) "-9223372036854775808"
|
|
string(3) "123" < array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
|
|
string(3) "123" >= string(0) ""
|
|
string(3) "123" >= int(1)
|
|
string(3) "123" >= float(2.5)
|
|
string(3) "123" >= int(0)
|
|
string(3) "123" < string(6) "string"
|
|
string(3) "123" >= string(3) "123"
|
|
string(3) "123" >= string(3) "2.5"
|
|
string(3) "123" >= NULL
|
|
string(3) "123" >= bool(true)
|
|
string(3) "123" >= bool(false)
|
|
string(3) "123" < object(stdClass)#%d (0) {}
|
|
string(3) "123" < object(stdClass)#%d (0) {}
|
|
string(3) "123" < object(test)#%d (0) {}
|
|
string(3) "123" < array(0) {}
|
|
string(3) "123" >= int(-9223372036854775808)
|
|
string(3) "123" >= string(20) "-9223372036854775808"
|
|
string(3) "2.5" < array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
|
|
string(3) "2.5" >= string(0) ""
|
|
string(3) "2.5" >= int(1)
|
|
string(3) "2.5" >= float(2.5)
|
|
string(3) "2.5" >= int(0)
|
|
string(3) "2.5" < string(6) "string"
|
|
string(3) "2.5" < string(3) "123"
|
|
string(3) "2.5" >= string(3) "2.5"
|
|
string(3) "2.5" >= NULL
|
|
string(3) "2.5" >= bool(true)
|
|
string(3) "2.5" >= bool(false)
|
|
string(3) "2.5" < object(stdClass)#%d (0) {}
|
|
string(3) "2.5" < object(stdClass)#%d (0) {}
|
|
string(3) "2.5" < object(test)#%d (0) {}
|
|
string(3) "2.5" < array(0) {}
|
|
string(3) "2.5" >= int(-9223372036854775808)
|
|
string(3) "2.5" >= string(20) "-9223372036854775808"
|
|
NULL < array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
|
|
NULL >= string(0) ""
|
|
NULL < int(1)
|
|
NULL < float(2.5)
|
|
NULL >= int(0)
|
|
NULL < string(6) "string"
|
|
NULL < string(3) "123"
|
|
NULL < string(3) "2.5"
|
|
NULL >= NULL
|
|
NULL < bool(true)
|
|
NULL >= bool(false)
|
|
NULL < object(stdClass)#%d (0) {}
|
|
NULL < object(stdClass)#%d (0) {}
|
|
NULL < object(test)#%d (0) {}
|
|
NULL >= array(0) {}
|
|
NULL < int(-9223372036854775808)
|
|
NULL < string(20) "-9223372036854775808"
|
|
bool(true) >= array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
|
|
bool(true) >= string(0) ""
|
|
bool(true) >= int(1)
|
|
bool(true) >= float(2.5)
|
|
bool(true) >= int(0)
|
|
bool(true) >= string(6) "string"
|
|
bool(true) >= string(3) "123"
|
|
bool(true) >= string(3) "2.5"
|
|
bool(true) >= NULL
|
|
bool(true) >= bool(true)
|
|
bool(true) >= bool(false)
|
|
bool(true) >= object(stdClass)#%d (0) {}
|
|
bool(true) >= object(stdClass)#%d (0) {}
|
|
bool(true) >= object(test)#%d (0) {}
|
|
bool(true) >= array(0) {}
|
|
bool(true) >= int(-9223372036854775808)
|
|
bool(true) >= string(20) "-9223372036854775808"
|
|
bool(false) < array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
|
|
bool(false) >= string(0) ""
|
|
bool(false) < int(1)
|
|
bool(false) < float(2.5)
|
|
bool(false) >= int(0)
|
|
bool(false) < string(6) "string"
|
|
bool(false) < string(3) "123"
|
|
bool(false) < string(3) "2.5"
|
|
bool(false) >= NULL
|
|
bool(false) < bool(true)
|
|
bool(false) >= bool(false)
|
|
bool(false) < object(stdClass)#%d (0) {}
|
|
bool(false) < object(stdClass)#%d (0) {}
|
|
bool(false) < object(test)#%d (0) {}
|
|
bool(false) >= array(0) {}
|
|
bool(false) < int(-9223372036854775808)
|
|
bool(false) < string(20) "-9223372036854775808"
|
|
object(stdClass)#%d (0) {} >= array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
|
|
object(stdClass)#%d (0) {} >= string(0) ""
|
|
object(stdClass)#%d (0) {}
|
|
Notice: Object of class stdClass could not be converted to int in %s on line %d
|
|
>= int(1)
|
|
object(stdClass)#%d (0) {}
|
|
Notice: Object of class stdClass could not be converted to float in %s on line %d
|
|
< float(2.5)
|
|
object(stdClass)#%d (0) {}
|
|
Notice: Object of class stdClass could not be converted to int in %s on line %d
|
|
>= int(0)
|
|
object(stdClass)#%d (0) {} >= string(6) "string"
|
|
object(stdClass)#%d (0) {} >= string(3) "123"
|
|
object(stdClass)#%d (0) {} >= string(3) "2.5"
|
|
object(stdClass)#%d (0) {} >= NULL
|
|
object(stdClass)#%d (0) {} >= bool(true)
|
|
object(stdClass)#%d (0) {} >= bool(false)
|
|
object(stdClass)#%d (0) {} >= object(stdClass)#%d (0) {}
|
|
object(stdClass)#%d (0) {} >= object(stdClass)#%d (0) {}
|
|
object(stdClass)#%d (0) {} >= object(test)#%d (0) {}
|
|
object(stdClass)#%d (0) {} >= array(0) {}
|
|
object(stdClass)#%d (0) {}
|
|
Notice: Object of class stdClass could not be converted to int in %s on line %d
|
|
>= int(-9223372036854775808)
|
|
object(stdClass)#%d (0) {} >= string(20) "-9223372036854775808"
|
|
object(stdClass)#%d (0) {} >= array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
|
|
object(stdClass)#%d (0) {} >= string(0) ""
|
|
object(stdClass)#%d (0) {}
|
|
Notice: Object of class stdClass could not be converted to int in %s on line %d
|
|
>= int(1)
|
|
object(stdClass)#%d (0) {}
|
|
Notice: Object of class stdClass could not be converted to float in %s on line %d
|
|
< float(2.5)
|
|
object(stdClass)#%d (0) {}
|
|
Notice: Object of class stdClass could not be converted to int in %s on line %d
|
|
>= int(0)
|
|
object(stdClass)#%d (0) {} >= string(6) "string"
|
|
object(stdClass)#%d (0) {} >= string(3) "123"
|
|
object(stdClass)#%d (0) {} >= string(3) "2.5"
|
|
object(stdClass)#%d (0) {} >= NULL
|
|
object(stdClass)#%d (0) {} >= bool(true)
|
|
object(stdClass)#%d (0) {} >= bool(false)
|
|
object(stdClass)#%d (0) {} >= object(stdClass)#%d (0) {}
|
|
object(stdClass)#%d (0) {} >= object(stdClass)#%d (0) {}
|
|
object(stdClass)#%d (0) {} >= object(test)#%d (0) {}
|
|
object(stdClass)#%d (0) {} >= array(0) {}
|
|
object(stdClass)#%d (0) {}
|
|
Notice: Object of class stdClass could not be converted to int in %s on line %d
|
|
>= int(-9223372036854775808)
|
|
object(stdClass)#%d (0) {} >= string(20) "-9223372036854775808"
|
|
object(test)#%d (0) {} >= array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
|
|
object(test)#%d (0) {} >= string(0) ""
|
|
object(test)#%d (0) {}
|
|
Notice: Object of class test could not be converted to int in %s on line %d
|
|
>= int(1)
|
|
object(test)#%d (0) {}
|
|
Notice: Object of class test could not be converted to float in %s on line %d
|
|
< float(2.5)
|
|
object(test)#%d (0) {}
|
|
Notice: Object of class test could not be converted to int in %s on line %d
|
|
>= int(0)
|
|
object(test)#%d (0) {} >= string(6) "string"
|
|
object(test)#%d (0) {} >= string(3) "123"
|
|
object(test)#%d (0) {} >= string(3) "2.5"
|
|
object(test)#%d (0) {} >= NULL
|
|
object(test)#%d (0) {} >= bool(true)
|
|
object(test)#%d (0) {} >= bool(false)
|
|
object(test)#%d (0) {} >= object(stdClass)#%d (0) {}
|
|
object(test)#%d (0) {} >= object(stdClass)#%d (0) {}
|
|
object(test)#%d (0) {} >= object(test)#%d (0) {}
|
|
object(test)#%d (0) {} >= array(0) {}
|
|
object(test)#%d (0) {}
|
|
Notice: Object of class test could not be converted to int in %s on line %d
|
|
>= int(-9223372036854775808)
|
|
object(test)#%d (0) {} >= string(20) "-9223372036854775808"
|
|
array(0) {} < array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
|
|
array(0) {} >= string(0) ""
|
|
array(0) {} >= int(1)
|
|
array(0) {} >= float(2.5)
|
|
array(0) {} >= int(0)
|
|
array(0) {} >= string(6) "string"
|
|
array(0) {} >= string(3) "123"
|
|
array(0) {} >= string(3) "2.5"
|
|
array(0) {} >= NULL
|
|
array(0) {} < bool(true)
|
|
array(0) {} >= bool(false)
|
|
array(0) {} < object(stdClass)#%d (0) {}
|
|
array(0) {} < object(stdClass)#%d (0) {}
|
|
array(0) {} < object(test)#%d (0) {}
|
|
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) < int(1)
|
|
int(-9223372036854775808) < float(2.5)
|
|
int(-9223372036854775808) < int(0)
|
|
int(-9223372036854775808) < string(6) "string"
|
|
int(-9223372036854775808) < string(3) "123"
|
|
int(-9223372036854775808) < string(3) "2.5"
|
|
int(-9223372036854775808) >= NULL
|
|
int(-9223372036854775808) >= bool(true)
|
|
int(-9223372036854775808) >= bool(false)
|
|
int(-9223372036854775808)
|
|
Notice: Object of class stdClass could not be converted to int in %s on line %d
|
|
< object(stdClass)#%d (0) {}
|
|
int(-9223372036854775808)
|
|
Notice: Object of class stdClass could not be converted to int in %s on line %d
|
|
< object(stdClass)#%d (0) {}
|
|
int(-9223372036854775808)
|
|
Notice: Object of class test could not be converted to int in %s on line %d
|
|
< object(test)#%d (0) {}
|
|
int(-9223372036854775808) < array(0) {}
|
|
int(-9223372036854775808) >= int(-9223372036854775808)
|
|
int(-9223372036854775808) >= string(20) "-9223372036854775808"
|
|
string(20) "-9223372036854775808" < array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}
|
|
string(20) "-9223372036854775808" >= string(0) ""
|
|
string(20) "-9223372036854775808" < int(1)
|
|
string(20) "-9223372036854775808" < float(2.5)
|
|
string(20) "-9223372036854775808" < int(0)
|
|
string(20) "-9223372036854775808" < string(6) "string"
|
|
string(20) "-9223372036854775808" < string(3) "123"
|
|
string(20) "-9223372036854775808" < string(3) "2.5"
|
|
string(20) "-9223372036854775808" >= NULL
|
|
string(20) "-9223372036854775808" >= bool(true)
|
|
string(20) "-9223372036854775808" >= bool(false)
|
|
string(20) "-9223372036854775808" < object(stdClass)#%d (0) {}
|
|
string(20) "-9223372036854775808" < object(stdClass)#%d (0) {}
|
|
string(20) "-9223372036854775808" < object(test)#%d (0) {}
|
|
string(20) "-9223372036854775808" < array(0) {}
|
|
string(20) "-9223372036854775808" >= int(-9223372036854775808)
|
|
string(20) "-9223372036854775808" >= string(20) "-9223372036854775808"
|
|
Done
|