function mt_srand(int $seed = 0, int $mode = MT_RAND_MT19937): void {}
-/** @return int|false */
-function mt_rand(int $min = 0, int $max = PHP_INT_MAX) {}
+function mt_rand(int $min = 0, int $max = PHP_INT_MAX): int {}
function mt_getrandmax(): int {}
ZEND_ARG_TYPE_INFO(0, mode, IS_LONG, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_mt_rand, 0, 0, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mt_rand, 0, 0, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, min, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, max, IS_LONG, 0)
ZEND_END_ARG_INFO()
ZEND_PARSE_PARAMETERS_END();
if (UNEXPECTED(max < min)) {
- php_error_docref(NULL, E_WARNING, "max(" ZEND_LONG_FMT ") is smaller than min(" ZEND_LONG_FMT ")", max, min);
- RETURN_FALSE;
+ zend_value_error("max (" ZEND_LONG_FMT ") is smaller than min (" ZEND_LONG_FMT ")", max, min);
+ return;
}
RETURN_LONG(php_mt_rand_common(min, max));
<?php
var_dump(mt_rand(3,8));
-var_dump(mt_rand(8,3));
+try {
+ var_dump(mt_rand(8,3));
+} catch (ValueError $e) {
+ echo $e->getMessage(), "\n";
+}
echo "Done.\n";
?>
--EXPECTF--
int(%d)
-
-Warning: mt_rand(): max(3) is smaller than min(8) in %s on line %d
-bool(false)
+max (3) is smaller than min (8)
Done.