diff --git a/main/main.c b/main/main.c index 2d58b9c99ce86..adaef5c85b50e 100644 --- a/main/main.c +++ b/main/main.c @@ -2142,6 +2142,13 @@ int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_mod REGISTER_MAIN_STRINGL_CONSTANT("PHP_BINARY", "", 0, CONST_PERSISTENT | CONST_CS); } + /* Standard three-way comparison/ordering enumeration + * Matches <=> + */ + REGISTER_MAIN_LONG_CONSTANT("CMP_LT", -1, CONST_PERSISTENT | CONST_CS); + REGISTER_MAIN_LONG_CONSTANT("CMP_EQ", 0, CONST_PERSISTENT | CONST_CS); + REGISTER_MAIN_LONG_CONSTANT("CMP_GT", 1, CONST_PERSISTENT | CONST_CS); + php_output_register_constants(); php_rfc1867_register_constants(); diff --git a/tests/lang/constants/CMP.phpt b/tests/lang/constants/CMP.phpt new file mode 100644 index 0000000000000..56de486b33856 --- /dev/null +++ b/tests/lang/constants/CMP.phpt @@ -0,0 +1,32 @@ +--TEST-- +CMP_LT, CMP_EQ and CMP_GT ordering constants +--FILE-- + return values", PHP_EOL; +var_dump((1 <=> 2) === CMP_LT); +var_dump((1 <=> 1) === CMP_EQ); +var_dump((2 <=> 1) === CMP_GT); + +echo "Make sure they're case-sensitive and lowercase variants aren't defined", PHP_EOL; +var_dump(defined("cmp_lt")); +var_dump(defined("cmp_eq")); +var_dump(defined("cmp_gt")); + +?> +--EXPECTF-- +Check values +int(-1) +int(0) +int(1) +Make sure they match <=> return values +bool(true) +bool(true) +bool(true) +Make sure they're case-sensitive and lowercase variants aren't defined +bool(false) +bool(false) +bool(false)