FN("array_key_last", MAY_BE_NULL | MAY_BE_LONG | MAY_BE_STRING),
F1("pos", UNKNOWN_INFO),
F1("assert_options", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG | MAY_BE_STRING | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING | MAY_BE_ARRAY_OF_OBJECT | MAY_BE_OBJECT),
- F0("version_compare", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE | MAY_BE_LONG),
+ F0("version_compare", MAY_BE_FALSE | MAY_BE_TRUE | MAY_BE_LONG),
F1("str_rot13", MAY_BE_STRING),
F1("stream_get_filters", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
F0("stream_filter_register", MAY_BE_FALSE | MAY_BE_TRUE),
--TEST--
-Ensures null is returned if versions are compared with invalid operator
+Ensures an exception is thrown if versions are compared with an invalid operator
--CREDITS--
David Stockton - <dave@davidstockton.com> - i3logix PHP Testfest 2017
--FILE--
<?php
-var_dump(version_compare('1.2', '2.1', '??'));
+try {
+ version_compare('1.2', '2.1', '??');
+} catch (ValueError $exception) {
+ echo $exception->getMessage() . "\n";
+}
?>
--EXPECT--
-NULL
+Invalid comparison operator
if (!strncmp(op, "!=", op_len) || !strncmp(op, "<>", op_len) || !strncmp(op, "ne", op_len)) {
RETURN_BOOL(compare != 0);
}
- RETURN_NULL();
+
+ zend_value_error("Invalid comparison operator");
}
/* }}} */