]> granicus.if.org Git - php/commitdiff
Cleanup argument handling of Zend functions and methods
authorMáté Kocsis <kocsismate@woohoolabs.com>
Sun, 12 Jul 2020 10:40:37 +0000 (12:40 +0200)
committerMáté Kocsis <kocsismate@woohoolabs.com>
Tue, 21 Jul 2020 12:47:03 +0000 (14:47 +0200)
Closes GH-5847

31 files changed:
Zend/tests/001.phpt
Zend/tests/002.phpt
Zend/tests/004.phpt
Zend/tests/006.phpt
Zend/tests/008.phpt
Zend/tests/010.phpt
Zend/tests/020.phpt
Zend/tests/bug37811.phpt
Zend/tests/bug44827.phpt
Zend/tests/bug72162.phpt
Zend/tests/class_alias_006.phpt
Zend/tests/closure_040.phpt
Zend/tests/constant_arrays.phpt
Zend/tests/constants_002.phpt
Zend/zend_builtin_functions.c
Zend/zend_builtin_functions.stub.php
Zend/zend_builtin_functions_arginfo.h
Zend/zend_closures.stub.php
Zend/zend_closures_arginfo.h
ext/com_dotnet/com_com.c
ext/standard/tests/class_object/get_class_methods_basic_001.phpt
ext/standard/tests/class_object/get_class_methods_variation_001.phpt
ext/standard/tests/class_object/get_parent_class_variation_002.phpt
ext/standard/tests/general_functions/bug41970.phpt
ext/standard/tests/strings/bug36944.phpt
ext/standard/tests/strings/strncasecmp_error.phpt
ext/standard/tests/strings/strncmp_error.phpt
tests/lang/bug44827.phpt
tests/lang/func_get_arg.004.phpt
tests/lang/func_get_arg_variation.phpt
tests/lang/func_num_args.003.phpt

index d041d20a3b4a4f509ce5a7e8f4e6d76642c7812b..0e27b48d6501215d6b252960e40a0cf727184aa7 100644 (file)
@@ -40,20 +40,23 @@ class test {
 }
 
 test::test1(1);
-var_dump(func_num_args());
+
+try {
+    func_num_args();
+} catch (Error $exception) {
+    echo $exception->getMessage() . "\n";
+}
 
 echo "Done\n";
 ?>
 --EXPECTF--
 int(0)
 int(1)
-Exception: Too few arguments to function test2(), 0 passed in %s001.php on line 18 and exactly 1 expected
+Exception: Too few arguments to function test2(), 0 passed in %s on line %d and exactly 1 expected
 int(2)
 int(0)
-Exception: Too few arguments to function test3(), 1 passed in %s001.php on line 27 and exactly 2 expected
+Exception: Too few arguments to function test3(), 1 passed in %s on line %d and exactly 2 expected
 int(2)
 int(1)
-
-Warning: func_num_args():  Called from the global scope - no function context in %s on line %d
-int(-1)
+func_num_args() must be called from a function context
 Done
index 80057bfa53e3c060c5c8381a3974fb0b64084016..7c2ff7b4d389d53d8e247f08661621f17a7dbce1 100644 (file)
@@ -96,26 +96,26 @@ try {
 echo "Done\n";
 ?>
 --EXPECTF--
-func_get_arg(): Argument #1 ($arg_num) must be greater than or equal to 0
-func_get_arg(): Argument 0 not passed to function
-func_get_arg(): Argument 1 not passed to function
-func_get_arg(): Argument #1 ($arg_num) must be greater than or equal to 0
+func_get_arg(): Argument #1 ($position) must be greater than or equal to 0
+func_get_arg(): Argument #1 ($position) must be less than the number of the arguments passed to the currently executed function
+func_get_arg(): Argument #1 ($position) must be less than the number of the arguments passed to the currently executed function
+func_get_arg(): Argument #1 ($position) must be greater than or equal to 0
 int(10)
-func_get_arg(): Argument 1 not passed to function
+func_get_arg(): Argument #1 ($position) must be less than the number of the arguments passed to the currently executed function
 int(1)
-func_get_arg(): Argument 1 not passed to function
+func_get_arg(): Argument #1 ($position) must be less than the number of the arguments passed to the currently executed function
 Exception: Too few arguments to function test2(), 0 passed in %s002.php on line %d and exactly 1 expected
 int(1)
 int(2)
-func_get_arg(): Argument 2 not passed to function
-func_get_arg(): Argument #1 ($arg_num) must be greater than or equal to 0
-func_get_arg(): Argument 0 not passed to function
-func_get_arg(): Argument 1 not passed to function
+func_get_arg(): Argument #1 ($position) must be less than the number of the arguments passed to the currently executed function
+func_get_arg(): Argument #1 ($position) must be greater than or equal to 0
+func_get_arg(): Argument #1 ($position) must be less than the number of the arguments passed to the currently executed function
+func_get_arg(): Argument #1 ($position) must be less than the number of the arguments passed to the currently executed function
 Exception: Too few arguments to function test3(), 1 passed in %s on line %d and exactly 2 expected
 int(1)
 int(2)
-func_get_arg(): Argument 2 not passed to function
+func_get_arg(): Argument #1 ($position) must be less than the number of the arguments passed to the currently executed function
 int(1)
-func_get_arg(): Argument 1 not passed to function
+func_get_arg(): Argument #1 ($position) must be less than the number of the arguments passed to the currently executed function
 func_get_arg() cannot be called from the global scope
 Done
index b5b476cc1beead13735eaa6e1df7a398ef78a6ad..bb40946f240ab2e3c24f4939d5dddee831efc7da 100644 (file)
@@ -16,7 +16,7 @@ var_dump(strncmp("qwerty", "qwerty123", 7));
 ?>
 --EXPECT--
 int(0)
-strncmp(): Argument #3 ($len) must be greater than or equal to 0
+strncmp(): Argument #3 ($length) must be greater than or equal to 0
 int(0)
 int(0)
 int(-1)
index 3377e933ce2af137c7b427c3eaef63e45ce0614e..ee6b56704020dd868b9e1d5e90d3d2f5464e9e7c 100644 (file)
@@ -19,7 +19,7 @@ var_dump(strncasecmp("01", "01", 1000));
 
 ?>
 --EXPECT--
-strncasecmp(): Argument #3 ($len) must be greater than or equal to 0
+strncasecmp(): Argument #3 ($length) must be greater than or equal to 0
 int(0)
 int(-3)
 int(0)
index b53578dbb35efbcf69a7625028ab40d08d8f35c4..aa2dbb8d33a1716b58d65b07ea1cfdc21406c459 100644 (file)
@@ -16,7 +16,12 @@ var_dump(define("test const", 3));
 var_dump(define("test const", 3));
 var_dump(define("test", array(1)));
 var_dump(define("test1", fopen(__FILE__, 'r')));
+
+try {
 var_dump(define("test2", new stdclass));
+} catch (TypeError $exception) {
+    echo $exception->getMessage() . "\n";
+}
 
 var_dump(constant(" "));
 var_dump(constant("[[["));
@@ -37,9 +42,7 @@ Notice: Constant test const already defined in %s on line %d
 bool(false)
 bool(true)
 bool(true)
-
-Warning: Constants may only evaluate to scalar values, arrays or resources in %s on line %d
-bool(false)
+define(): Argument #2 ($value) cannot be an object, stdClass given
 int(1)
 int(2)
 int(3)
index 351398ecfa85427939705aac27bbcf5d06d59168..8c8970fa1759ad49a6264235089fdb4e138157ae 100644 (file)
@@ -75,10 +75,10 @@ bool(false)
 string(3) "foo"
 bool(false)
 bool(false)
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, string given
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, string given
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, string given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, string given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, string given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, string given
 bool(false)
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, array given
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, int given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, array given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, int given
 Done
index 9e36037d8862f86ea669ff0b2b1694840bf1b594..13e0443c07f6da3909c8ad9c6488c7fbd1921b1d 100644 (file)
@@ -26,4 +26,4 @@ try {
 ?>
 --EXPECT--
 func_get_arg() cannot be called from the global scope
-func_get_arg(): Argument 1 not passed to function
+func_get_arg(): Argument #1 ($position) must be less than the number of the arguments passed to the currently executed function
index f3c2ee5e20d19f436c741ba66abf875bd493e318..3e433a0da6d7e18cb469177e5cd8534ee4afd7b3 100644 (file)
@@ -11,19 +11,23 @@ class TestClass
     }
 }
 
-define("Bar",new TestClass);
+define("Bar", new TestClass);
 var_dump(Bar);
-define("Baz",new stdClass);
-var_dump(Baz);
 
-?>
-===DONE===
---EXPECTF--
-string(3) "Foo"
+try {
+    define("Baz", new stdClass);
+} catch (TypeError $exception) {
+    echo $exception->getMessage() . "\n";
+}
 
-Warning: Constants may only evaluate to scalar values, arrays or resources in %sbug37811.php on line %d
+try {
+    var_dump(Baz);
+} catch (Error $exception) {
+    echo $exception->getMessage() . "\n";
+}
 
-Fatal error: Uncaught Error: Undefined constant "Baz" in %s:%d
-Stack trace:
-#0 {main}
-  thrown in %s on line %d
+?>
+--EXPECT--
+string(3) "Foo"
+define(): Argument #2 ($value) cannot be an object, stdClass given
+Undefined constant "Baz"
index a9f1d87d246c14e483c8a0562a7e31c6c23b6151..8e51087480bd7612060daed65a378fe8817dea87 100644 (file)
@@ -2,10 +2,20 @@
 Bug #44827 (define() allows :: in constant names)
 --FILE--
 <?php
-define('foo::bar', 1);
-define('::', 1);
-?>
---EXPECTF--
-Warning: Class constants cannot be defined or redefined in %sbug44827.php on line %d
 
-Warning: Class constants cannot be defined or redefined in %sbug44827.php on line %d
+try {
+    define('foo::bar', 1);
+} catch (ValueError $exception) {
+    echo $exception->getMessage() . "\n";
+}
+
+try {
+    define('::', 1);
+} catch (ValueError $exception) {
+    echo $exception->getMessage() . "\n";
+}
+
+?>
+--EXPECT--
+define(): Argument #1 ($constant_name) cannot be a class constant
+define(): Argument #1 ($constant_name) cannot be a class constant
index 44237038a12b81a9c1a9debf4c4d840b0de6899b..721b0fc306804e8537d0611f6f1a9e139ce2be7d 100644 (file)
@@ -4,11 +4,12 @@ Bug #72162 (use-after-free - error_reporting)
 <?php
 error_reporting(E_ALL);
 $var11 = new StdClass();
-$var16 = error_reporting($var11);
+
+try {
+    $var16 = error_reporting($var11);
+} catch (TypeError $exception) {
+    echo $exception->getMessage() . "\n";
+}
 ?>
---EXPECTF--
-Fatal error: Uncaught Error: Object of class stdClass could not be converted to string in %s:%d
-Stack trace:
-#0 %s(%d): error_reporting(Object(stdClass))
-#1 {main}
-  thrown in %s on line %d
+--EXPECT--
+error_reporting(): Argument #1 ($error_level) must be of type ?int, stdClass given
index d14ad7c93356585d2bd79f837cba4304956b08dc..8fe2ac509aeeab85b2d8e9d414f3fca14974ecd0 100644 (file)
@@ -3,8 +3,12 @@ Testing creation of alias to an internal class
 --FILE--
 <?php
 
-class_alias('stdclass', 'foo');
+try {
+    class_alias('stdclass', 'foo');
+} catch (ValueError $exception) {
+    echo $exception->getMessage() . "\n";
+}
 
 ?>
---EXPECTF--
-Warning: First argument of class_alias() must be a name of user defined class in %s on line %d
+--EXPECT--
+class_alias(): Argument #1 ($class) must be a user-defined class name, internal class name given
index 72d2fb95b8900830d10d387c043759c809406ce6..a18ae2640e018030a59f5af83ea7ce894f1a08c9 100644 (file)
@@ -25,6 +25,7 @@ $ca = $a->getIncrementor();
 $cas = $a->getStaticIncrementor();
 
 $ca->bindTo($a, array());
+
 $cas->bindTo($a, 'A');
 
 ?>
index 06d911328c5f6d7b8486fdbcdac22b6cfa45c609..d439ff6922ca682543faf9a5737b05ed82676d33 100644 (file)
@@ -24,12 +24,21 @@ $y[0] = 3;
 var_dump($x, $y, QUX);
 
 // ensure objects not allowed in arrays
-var_dump(define('ELEPHPANT', [new StdClass]));
+try {
+    define('ELEPHPANT', [new StdClass]);
+} catch (TypeError $exception) {
+    echo $exception->getMessage() . "\n";
+}
 
 // ensure recursion doesn't crash
 $recursive = [];
 $recursive[0] = &$recursive;
-var_dump(define('RECURSION', $recursive));
+
+try {
+    define('RECURSION', $recursive);
+} catch (ValueError $exception) {
+    echo $exception->getMessage() . "\n";
+}
 --EXPECTF--
 array(4) {
   [0]=>
@@ -92,9 +101,5 @@ array(1) {
   [0]=>
   int(7)
 }
-
-Warning: Constants may only evaluate to scalar values, arrays or resources in %s on line %d
-bool(false)
-
-Warning: Constants cannot be recursive arrays in %s on line %d
-bool(false)
+define(): Argument #2 ($value) cannot be an object, stdClass given
+define(): Argument #2 ($value) cannot be a recursive array
index 345c1dd822ffbe26ffa1ef89a98829bcec15bf69..309b9c7f9c77602472b7fce939843e196e2cae41 100644 (file)
@@ -3,7 +3,12 @@ Defining constants with non-scalar values
 --FILE--
 <?php
 
-define('foo', new stdClass);
+try {
+    define('foo', new stdClass);
+} catch (TypeError $exception) {
+    echo $exception->getMessage() . "\n";
+}
+
 try {
     var_dump(foo);
 } catch (Error $e) {
@@ -14,7 +19,7 @@ define('foo', fopen(__FILE__, 'r'));
 var_dump(foo);
 
 ?>
---EXPECTF--
-Warning: Constants may only evaluate to scalar values, arrays or resources in %s on line %d
+--EXPECT--
+define(): Argument #2 ($value) cannot be an object, stdClass given
 Undefined constant "foo"
 resource(5) of type (stream)
index 69299615b46e29a48c260ddd852b6377811dc4c0..c75f2f465bf8c4065f6b350f68466593a6803f2f 100644 (file)
@@ -155,8 +155,8 @@ ZEND_FUNCTION(func_num_args)
        ZEND_PARSE_PARAMETERS_NONE();
 
        if (ZEND_CALL_INFO(ex) & ZEND_CALL_CODE) {
-               zend_error(E_WARNING, "func_num_args():  Called from the global scope - no function context");
-               RETURN_LONG(-1);
+               zend_throw_error(NULL, "func_num_args() must be called from a function context");
+               RETURN_THROWS();
        }
 
        if (zend_forbid_dynamic_call("func_num_args()") == FAILURE) {
@@ -197,7 +197,7 @@ ZEND_FUNCTION(func_get_arg)
        arg_count = ZEND_CALL_NUM_ARGS(ex);
 
        if ((zend_ulong)requested_offset >= arg_count) {
-               zend_throw_error(NULL, "func_get_arg(): Argument " ZEND_LONG_FMT " not passed to function", requested_offset);
+               zend_argument_value_error(1, "must be less than the number of the arguments passed to the currently executed function");
                RETURN_THROWS();
        }
 
@@ -369,17 +369,19 @@ ZEND_FUNCTION(strncasecmp)
 /* {{{ Return the current error_reporting level, and if an argument was passed - change to the new level */
 ZEND_FUNCTION(error_reporting)
 {
-       zval *err = NULL;
+       zend_long err;
+       zend_bool err_is_null = 1;
        int old_error_reporting;
 
        ZEND_PARSE_PARAMETERS_START(0, 1)
                Z_PARAM_OPTIONAL
-               Z_PARAM_ZVAL(err)
+               Z_PARAM_LONG_OR_NULL(err, err_is_null)
        ZEND_PARSE_PARAMETERS_END();
 
        old_error_reporting = EG(error_reporting);
-       if (ZEND_NUM_ARGS() != 0) {
-               zend_string *new_val = zval_try_get_string(err);
+
+       if (!err_is_null) {
+               zend_string *new_val = zend_long_to_str(err);
                if (UNEXPECTED(!new_val)) {
                        RETURN_THROWS();
                }
@@ -410,11 +412,7 @@ ZEND_FUNCTION(error_reporting)
                        }
 
                        p->value = new_val;
-                       if (Z_TYPE_P(err) == IS_LONG) {
-                               EG(error_reporting) = Z_LVAL_P(err);
-                       } else {
-                               EG(error_reporting) = atoi(ZSTR_VAL(p->value));
-                       }
+                       EG(error_reporting) = err;
                } while (0);
        }
 
@@ -422,7 +420,7 @@ ZEND_FUNCTION(error_reporting)
 }
 /* }}} */
 
-static int validate_constant_array(HashTable *ht) /* {{{ */
+static int validate_constant_array_argument(HashTable *ht, int argument_number) /* {{{ */
 {
        int ret = 1;
        zval *val;
@@ -434,16 +432,16 @@ static int validate_constant_array(HashTable *ht) /* {{{ */
                        if (Z_TYPE_P(val) == IS_ARRAY) {
                                if (Z_REFCOUNTED_P(val)) {
                                        if (Z_IS_RECURSIVE_P(val)) {
-                                               zend_error(E_WARNING, "Constants cannot be recursive arrays");
+                                               zend_argument_value_error(argument_number, "cannot be a recursive array");
                                                ret = 0;
                                                break;
-                                       } else if (!validate_constant_array(Z_ARRVAL_P(val))) {
+                                       } else if (!validate_constant_array_argument(Z_ARRVAL_P(val), argument_number)) {
                                                ret = 0;
                                                break;
                                        }
                                }
                        } else if (Z_TYPE_P(val) != IS_STRING && Z_TYPE_P(val) != IS_RESOURCE) {
-                               zend_error(E_WARNING, "Constants may only evaluate to scalar values, arrays or resources");
+                               zend_argument_type_error(argument_number, "cannot be an object, %s given", zend_zval_type_name(val));
                                ret = 0;
                                break;
                        }
@@ -496,15 +494,13 @@ ZEND_FUNCTION(define)
        ZEND_PARSE_PARAMETERS_END();
 
        if (zend_memnstr(ZSTR_VAL(name), "::", sizeof("::") - 1, ZSTR_VAL(name) + ZSTR_LEN(name))) {
-               zend_error(E_WARNING, "Class constants cannot be defined or redefined");
-               RETURN_FALSE;
+               zend_argument_value_error(1, "cannot be a class constant");
+               RETURN_THROWS();
        }
 
        if (non_cs) {
-               zend_error(E_WARNING,
-                       "define(): Declaration of case-insensitive constants is no longer supported");
-               RETURN_FALSE;
-       }
+               zend_error(E_WARNING, "define(): Argument #3 ($case_insensitive) is ignored since declaration of case-insensitive constants is no longer supported");
+    }
 
        ZVAL_UNDEF(&val_free);
 
@@ -519,8 +515,8 @@ ZEND_FUNCTION(define)
                        break;
                case IS_ARRAY:
                        if (Z_REFCOUNTED_P(val)) {
-                               if (!validate_constant_array(Z_ARRVAL_P(val))) {
-                                       RETURN_FALSE;
+                               if (!validate_constant_array_argument(Z_ARRVAL_P(val), 2)) {
+                                       RETURN_THROWS();
                                } else {
                                        copy_constant_array(&c.value, val);
                                        goto register_constant;
@@ -534,9 +530,9 @@ ZEND_FUNCTION(define)
                        }
                        /* no break */
                default:
-                       zend_error(E_WARNING, "Constants may only evaluate to scalar values, arrays or resources");
                        zval_ptr_dtor(&val_free);
-                       RETURN_FALSE;
+                       zend_argument_type_error(2, "cannot be an object, %s given", zend_zval_type_name(val));
+                       RETURN_THROWS();
        }
 
        ZVAL_COPY(&c.value, val);
@@ -1120,8 +1116,8 @@ ZEND_FUNCTION(class_alias)
                                RETURN_FALSE;
                        }
                } else {
-                       zend_error(E_WARNING, "First argument of class_alias() must be a name of user defined class");
-                       RETURN_FALSE;
+                       zend_argument_value_error(1, "must be a user-defined class name, internal class name given");
+                       RETURN_THROWS();
                }
        } else {
                zend_error(E_WARNING, "Class \"%s\" not found", ZSTR_VAL(class_name));
@@ -1436,7 +1432,7 @@ ZEND_FUNCTION(get_resources)
        zend_ulong index;
        zval *val;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS(), "|S", &type) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS(), "|S!", &type) == FAILURE) {
                RETURN_THROWS();
        }
 
@@ -1460,8 +1456,8 @@ ZEND_FUNCTION(get_resources)
                int id = zend_fetch_list_dtor_id(ZSTR_VAL(type));
 
                if (id <= 0) {
-                       zend_error(E_WARNING, "get_resources():  Unknown resource type '%s'", ZSTR_VAL(type));
-                       RETURN_FALSE;
+                       zend_argument_value_error(1, "must be a valid resource type");
+                       RETURN_THROWS();
                }
 
                array_init(return_value);
index 8e1bb0b94cea548d35c4c029ec489a2aa669ab72..a9a33d9de145fe2361af420de64f6467bf536fb2 100644 (file)
@@ -6,23 +6,24 @@ function zend_version(): string {}
 
 function func_num_args(): int {}
 
-function func_get_arg(int $arg_num): mixed {}
+function func_get_arg(int $position): mixed {}
 
 function func_get_args(): array {}
 
-function strlen(string $str): int {}
+function strlen(string $string): int {}
 
-function strcmp(string $str1, string $str2): int {}
+function strcmp(string $string1, string $string2): int {}
 
-function strncmp(string $str1, string $str2, int $len): int {}
+function strncmp(string $string1, string $string2, int $length): int {}
 
-function strcasecmp(string $str1, string $str2): int {}
+function strcasecmp(string $string1, string $string2): int {}
 
-function strncasecmp(string $str1, string $str2, int $len): int {}
+function strncasecmp(string $string1, string $string2, int $length): int {}
 
-function error_reporting($new_error_level = UNKNOWN): int {}
+function error_reporting(?int $error_level = null): int {}
 
-function define(string $constant_name, $value, bool $case_insensitive = false): bool {}
+/** @param mixed $value */
+function define(string $constant_name, $value, $case_insensitive = false): bool {}
 
 function defined(string $constant_name): bool {}
 
@@ -30,33 +31,37 @@ function get_class(object $object = UNKNOWN): string {}
 
 function get_called_class(): string {}
 
-function get_parent_class(string|object $object = UNKNOWN): string|false {}
+function get_parent_class(object|string $object_or_class = UNKNOWN): string|false {}
 
-function is_subclass_of($object, string $class_name, bool $allow_string = true): bool {}
+/** @param object|string $object_or_class */
+function is_subclass_of(mixed $object_or_class, string $class, bool $allow_string = true): bool {}
 
-function is_a($object, string $class_name, bool $allow_string = false): bool {}
+/** @param object|string $object_or_class */
+function is_a(mixed $object_or_class, string $class, bool $allow_string = false): bool {}
 
-function get_class_vars(string $class_name): array|false {}
+function get_class_vars(string $class): array|false {}
 
-function get_object_vars(object $obj): array {}
+function get_object_vars(object $object): array {}
 
-function get_mangled_object_vars(object $obj): array {}
+function get_mangled_object_vars(object $object): array {}
 
-function get_class_methods(string|object $class): array {}
+function get_class_methods(object|string $object_or_class): array {}
 
-function method_exists($object_or_class, string $method): bool {}
+/** @param object|string $object_or_class */
+function method_exists(mixed $object_or_class, string $method): bool {}
 
-function property_exists($object_or_class, string $property_name): bool {}
+/** @param object|string $object_or_class */
+function property_exists(mixed $object_or_class, string $property): bool {}
 
-function class_exists(string $classname, bool $autoload = true): bool {}
+function class_exists(string $class, bool $autoload = true): bool {}
 
-function interface_exists(string $classname, bool $autoload = true): bool {}
+function interface_exists(string $interface, bool $autoload = true): bool {}
 
-function trait_exists(string $traitname, bool $autoload = true): bool {}
+function trait_exists(string $trait, bool $autoload = true): bool {}
 
-function function_exists(string $function_name): bool {}
+function function_exists(string $function): bool {}
 
-function class_alias(string $user_class_name, string $alias_name, bool $autoload = true): bool {}
+function class_alias(string $class, string $alias, bool $autoload = true): bool {}
 
 function get_included_files(): array {}
 
@@ -88,11 +93,13 @@ function get_defined_functions(bool $exclude_disabled = true): array {}
 
 function get_defined_vars(): array {}
 
-function get_resource_type($res): string {}
+/** @param resource $resource */
+function get_resource_type($resource): string {}
 
-function get_resource_id($res): int {}
+/** @param resource $resource */
+function get_resource_id($resource): int {}
 
-function get_resources(string $type = UNKNOWN): array {}
+function get_resources(?string $type = null): array {}
 
 function get_loaded_extensions(bool $zend_extensions = false): array {}
 
@@ -102,9 +109,9 @@ function debug_backtrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT, int $lim
 
 function debug_print_backtrace(int $options = 0, int $limit = 0): void {}
 
-function extension_loaded(string $extension_name): bool {}
+function extension_loaded(string $extension): bool {}
 
-function get_extension_funcs(string $extension_name): array|false {}
+function get_extension_funcs(string $extension): array|false {}
 
 #if ZEND_DEBUG && defined(ZTS)
 function zend_thread_id(): int {}
index 1fa189410c791eb813591bd0d4626ea5a78db104..0e1a7c3879e3a1c3aeb0c69d96f1ff49b700adde 100644 (file)
@@ -1,5 +1,5 @@
 /* This is a generated file, edit the .stub.php file instead.
- * Stub hash: 0d3c035fc2b9f0dcdbf6efe3c740d8aa3805ec32 */
+ * Stub hash: d1ab4864c1159916b45c8f272a2a1d708b2dca65 */
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_version, 0, 0, IS_STRING, 0)
 ZEND_END_ARG_INFO()
@@ -8,25 +8,25 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_func_num_args, 0, 0, IS_LONG, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_func_get_arg, 0, 1, IS_MIXED, 0)
-       ZEND_ARG_TYPE_INFO(0, arg_num, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, position, IS_LONG, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_func_get_args, 0, 0, IS_ARRAY, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_strlen, 0, 1, IS_LONG, 0)
-       ZEND_ARG_TYPE_INFO(0, str, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_strcmp, 0, 2, IS_LONG, 0)
-       ZEND_ARG_TYPE_INFO(0, str1, IS_STRING, 0)
-       ZEND_ARG_TYPE_INFO(0, str2, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, string1, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, string2, IS_STRING, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_strncmp, 0, 3, IS_LONG, 0)
-       ZEND_ARG_TYPE_INFO(0, str1, IS_STRING, 0)
-       ZEND_ARG_TYPE_INFO(0, str2, IS_STRING, 0)
-       ZEND_ARG_TYPE_INFO(0, len, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, string1, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, string2, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0)
 ZEND_END_ARG_INFO()
 
 #define arginfo_strcasecmp arginfo_strcmp
@@ -34,13 +34,13 @@ ZEND_END_ARG_INFO()
 #define arginfo_strncasecmp arginfo_strncmp
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_error_reporting, 0, 0, IS_LONG, 0)
-       ZEND_ARG_INFO(0, new_error_level)
+       ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, error_level, IS_LONG, 1, "null")
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_define, 0, 2, _IS_BOOL, 0)
        ZEND_ARG_TYPE_INFO(0, constant_name, IS_STRING, 0)
        ZEND_ARG_INFO(0, value)
-       ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, case_insensitive, _IS_BOOL, 0, "false")
+       ZEND_ARG_INFO_WITH_DEFAULT_VALUE(0, case_insensitive, "false")
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_defined, 0, 1, _IS_BOOL, 0)
@@ -54,64 +54,67 @@ ZEND_END_ARG_INFO()
 #define arginfo_get_called_class arginfo_zend_version
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_get_parent_class, 0, 0, MAY_BE_STRING|MAY_BE_FALSE)
-       ZEND_ARG_TYPE_MASK(0, object, MAY_BE_STRING|MAY_BE_OBJECT, NULL)
+       ZEND_ARG_TYPE_MASK(0, object_or_class, MAY_BE_OBJECT|MAY_BE_STRING, NULL)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_is_subclass_of, 0, 2, _IS_BOOL, 0)
-       ZEND_ARG_INFO(0, object)
-       ZEND_ARG_TYPE_INFO(0, class_name, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, object_or_class, IS_MIXED, 0)
+       ZEND_ARG_TYPE_INFO(0, class, IS_STRING, 0)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, allow_string, _IS_BOOL, 0, "true")
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_is_a, 0, 2, _IS_BOOL, 0)
-       ZEND_ARG_INFO(0, object)
-       ZEND_ARG_TYPE_INFO(0, class_name, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, object_or_class, IS_MIXED, 0)
+       ZEND_ARG_TYPE_INFO(0, class, IS_STRING, 0)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, allow_string, _IS_BOOL, 0, "false")
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_get_class_vars, 0, 1, MAY_BE_ARRAY|MAY_BE_FALSE)
-       ZEND_ARG_TYPE_INFO(0, class_name, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, class, IS_STRING, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_get_object_vars, 0, 1, IS_ARRAY, 0)
-       ZEND_ARG_TYPE_INFO(0, obj, IS_OBJECT, 0)
+       ZEND_ARG_TYPE_INFO(0, object, IS_OBJECT, 0)
 ZEND_END_ARG_INFO()
 
 #define arginfo_get_mangled_object_vars arginfo_get_object_vars
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_get_class_methods, 0, 1, IS_ARRAY, 0)
-       ZEND_ARG_TYPE_MASK(0, class, MAY_BE_STRING|MAY_BE_OBJECT, NULL)
+       ZEND_ARG_TYPE_MASK(0, object_or_class, MAY_BE_OBJECT|MAY_BE_STRING, NULL)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_method_exists, 0, 2, _IS_BOOL, 0)
-       ZEND_ARG_INFO(0, object_or_class)
+       ZEND_ARG_TYPE_INFO(0, object_or_class, IS_MIXED, 0)
        ZEND_ARG_TYPE_INFO(0, method, IS_STRING, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_property_exists, 0, 2, _IS_BOOL, 0)
-       ZEND_ARG_INFO(0, object_or_class)
-       ZEND_ARG_TYPE_INFO(0, property_name, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, object_or_class, IS_MIXED, 0)
+       ZEND_ARG_TYPE_INFO(0, property, IS_STRING, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_exists, 0, 1, _IS_BOOL, 0)
-       ZEND_ARG_TYPE_INFO(0, classname, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, class, IS_STRING, 0)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, autoload, _IS_BOOL, 0, "true")
 ZEND_END_ARG_INFO()
 
-#define arginfo_interface_exists arginfo_class_exists
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_interface_exists, 0, 1, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, interface, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, autoload, _IS_BOOL, 0, "true")
+ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_trait_exists, 0, 1, _IS_BOOL, 0)
-       ZEND_ARG_TYPE_INFO(0, traitname, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, trait, IS_STRING, 0)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, autoload, _IS_BOOL, 0, "true")
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_function_exists, 0, 1, _IS_BOOL, 0)
-       ZEND_ARG_TYPE_INFO(0, function_name, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, function, IS_STRING, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_alias, 0, 2, _IS_BOOL, 0)
-       ZEND_ARG_TYPE_INFO(0, user_class_name, IS_STRING, 0)
-       ZEND_ARG_TYPE_INFO(0, alias_name, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, class, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, alias, IS_STRING, 0)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, autoload, _IS_BOOL, 0, "true")
 ZEND_END_ARG_INFO()
 
@@ -153,15 +156,15 @@ ZEND_END_ARG_INFO()
 #define arginfo_get_defined_vars arginfo_func_get_args
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_get_resource_type, 0, 1, IS_STRING, 0)
-       ZEND_ARG_INFO(0, res)
+       ZEND_ARG_INFO(0, resource)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_get_resource_id, 0, 1, IS_LONG, 0)
-       ZEND_ARG_INFO(0, res)
+       ZEND_ARG_INFO(0, resource)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_get_resources, 0, 0, IS_ARRAY, 0)
-       ZEND_ARG_TYPE_INFO(0, type, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, type, IS_STRING, 1, "null")
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_get_loaded_extensions, 0, 0, IS_ARRAY, 0)
@@ -183,11 +186,11 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_debug_print_backtrace, 0, 0, IS_
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_extension_loaded, 0, 1, _IS_BOOL, 0)
-       ZEND_ARG_TYPE_INFO(0, extension_name, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, extension, IS_STRING, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_get_extension_funcs, 0, 1, MAY_BE_ARRAY|MAY_BE_FALSE)
-       ZEND_ARG_TYPE_INFO(0, extension_name, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, extension, IS_STRING, 0)
 ZEND_END_ARG_INFO()
 
 #if ZEND_DEBUG && defined(ZTS)
index 9cc298eee072aeca181c053f91bc4496529d4f10..65f5128e6484cba5aeb9ea6442386b028a7980b4 100644 (file)
@@ -6,13 +6,17 @@ final class Closure
 {
     private function __construct() {}
 
-    public static function bind(Closure $closure, ?object $newthis, $newscope = UNKNOWN): ?Closure {}
+    /** @param object|string|null $newScope */
+    public static function bind(Closure $closure, ?object $newThis, $newScope = UNKNOWN): ?Closure {}
 
-    /** @alias Closure::bind */
-    public function bindTo(?object $newthis, $newscope = UNKNOWN): ?Closure {}
+    /**
+     * @param object|string|null $newScope
+     * @alias Closure::bind
+     */
+    public function bindTo(?object $newThis, $newScope = UNKNOWN): ?Closure {}
 
-    public function call(object $newthis, mixed ...$parameters): mixed {}
+    public function call(object $newThis, mixed ...$arguments): mixed {}
 
-    /** @param callable $callable Not a proper type annotation due to bug #78770 */
-    public static function fromCallable($callable): Closure {}
+    /** @param callable $callback Not a proper type annotation due to bug #78770 */
+    public static function fromCallable($callback): Closure {}
 }
index 14c262773196fc72c1e34520c984bd24f870cc98..9e7e64708ce7bc71782aed4189ad692007338bf9 100644 (file)
@@ -1,27 +1,27 @@
 /* This is a generated file, edit the .stub.php file instead.
- * Stub hash: 3352191f3a07009ef853829816a3209156afb0bc */
+ * Stub hash: 57771cb65a3193bd683be75efd04f7daff0f8585 */
 
 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Closure___construct, 0, 0, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_Closure_bind, 0, 2, Closure, 1)
        ZEND_ARG_OBJ_INFO(0, closure, Closure, 0)
-       ZEND_ARG_TYPE_INFO(0, newthis, IS_OBJECT, 1)
-       ZEND_ARG_INFO(0, newscope)
+       ZEND_ARG_TYPE_INFO(0, newThis, IS_OBJECT, 1)
+       ZEND_ARG_INFO(0, newScope)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_Closure_bindTo, 0, 1, Closure, 1)
-       ZEND_ARG_TYPE_INFO(0, newthis, IS_OBJECT, 1)
-       ZEND_ARG_INFO(0, newscope)
+       ZEND_ARG_TYPE_INFO(0, newThis, IS_OBJECT, 1)
+       ZEND_ARG_INFO(0, newScope)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_Closure_call, 0, 1, IS_MIXED, 0)
-       ZEND_ARG_TYPE_INFO(0, newthis, IS_OBJECT, 0)
-       ZEND_ARG_VARIADIC_TYPE_INFO(0, parameters, IS_MIXED, 0)
+       ZEND_ARG_TYPE_INFO(0, newThis, IS_OBJECT, 0)
+       ZEND_ARG_VARIADIC_TYPE_INFO(0, arguments, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_Closure_fromCallable, 0, 1, Closure, 0)
-       ZEND_ARG_INFO(0, callable)
+       ZEND_ARG_INFO(0, callback)
 ZEND_END_ARG_INFO()
 
 
index 979c1e9084cfe8a8861a8d14e35214b7452ccde1..802717bb9c67ea23d75763d38eae8f77fb254a7f 100644 (file)
@@ -821,8 +821,7 @@ PHP_FUNCTION(com_load_typelib)
        }
 
        if (!cs) {
-               php_error_docref(NULL, E_WARNING, "Declaration of case-insensitive constants is no longer supported");
-               RETURN_FALSE;
+               php_error_docref(NULL, E_WARNING, "com_load_typelib(): Argument #2 ($case_insensitive) is ignored since declaration of case-insensitive constants is no longer supported");
        }
 
        RETVAL_FALSE;
index 27993799d324ca84d1a53a22f2f57f505ae170ea..ebb45aaab615d3723b8d8e7b4ce14ad97fb9e4d0 100644 (file)
@@ -57,5 +57,5 @@ Argument is name of class which has no methods:
 array(0) {
 }
 Argument is non existent class:
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, string given
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, string given
 Done
index 7538b294038ea89b956fb3cfddd76374c0f4dce3..0d103c1144fcf4bb011fb3a3a6fc57488371add1 100644 (file)
@@ -69,13 +69,13 @@ $values = array(
 // loop through each element of the array for class
 
 foreach($values as $value) {
-      echo "\nArg value " . (is_object($value) ? get_class($value) : $value) . " \n";
+      echo "\nArg value " . (is_object($value) ? get_class($value) : $value) . "\n";
       try {
             var_dump( get_class_methods($value) );
       } catch (TypeError $exception) {
             echo $exception->getMessage() . "\n";
       }
-};
+}
 echo "Done";
 ?>
 --EXPECT--
@@ -83,90 +83,90 @@ echo "Done";
 Error: 2 - Undefined variable $undefined_var
 Error: 2 - Undefined variable $unset_var
 
-Arg value 0 
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, int given
+Arg value 0
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, int given
 
-Arg value 1 
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, int given
+Arg value 1
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, int given
 
-Arg value 12345 
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, int given
+Arg value 12345
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, int given
 
-Arg value -2345 
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, int given
+Arg value -2345
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, int given
 
-Arg value 10.5 
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, float given
+Arg value 10.5
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, float given
 
-Arg value -10.5 
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, float given
+Arg value -10.5
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, float given
 
-Arg value 101234567000 
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, float given
+Arg value 101234567000
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, float given
 
-Arg value 1.07654321E-9 
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, float given
+Arg value 1.07654321E-9
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, float given
 
-Arg value 0.5 
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, float given
+Arg value 0.5
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, float given
 Error: 2 - Array to string conversion
 
-Arg value Array 
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, array given
+Arg value Array
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, array given
 Error: 2 - Array to string conversion
 
-Arg value Array 
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, array given
+Arg value Array
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, array given
 Error: 2 - Array to string conversion
 
-Arg value Array 
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, array given
+Arg value Array
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, array given
 Error: 2 - Array to string conversion
 
-Arg value Array 
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, array given
+Arg value Array
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, array given
 Error: 2 - Array to string conversion
 
-Arg value Array 
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, array given
+Arg value Array
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, array given
 
-Arg value  
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, null given
+Arg value 
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, null given
 
-Arg value  
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, null given
+Arg value 
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, null given
 
-Arg value 1 
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, bool given
+Arg value 1
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, bool given
 
-Arg value  
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, bool given
+Arg value 
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, bool given
 
-Arg value 1 
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, bool given
+Arg value 1
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, bool given
 
-Arg value  
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, bool given
+Arg value 
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, bool given
 
-Arg value  
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, string given
+Arg value 
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, string given
 
-Arg value  
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, string given
+Arg value 
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, string given
 
-Arg value string 
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, string given
+Arg value string
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, string given
 
-Arg value string 
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, string given
+Arg value string
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, string given
 
-Arg value stdClass 
+Arg value stdClass
 array(0) {
 }
 
-Arg value  
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, null given
+Arg value 
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, null given
 
-Arg value  
-get_class_methods(): Argument #1 ($class) must be a valid class name or object, null given
+Arg value 
+get_class_methods(): Argument #1 ($object_or_class) must be a valid class name or object, null given
 Done
index a8c8e1711760f12fecc9a5bc94b031b8e4f6b18e..9d6361e4498d601d85b81e88ff0b44c2237fb52a 100644 (file)
@@ -87,90 +87,90 @@ Error: 2 - Undefined variable $undefined_var
 Error: 2 - Undefined variable $unset_var
 
 Arg value 0
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, int given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, int given
 
 Arg value 1
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, int given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, int given
 
 Arg value 12345
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, int given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, int given
 
 Arg value -2345
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, int given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, int given
 
 Arg value 10.5
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, float given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, float given
 
 Arg value -10.5
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, float given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, float given
 
 Arg value 101234567000
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, float given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, float given
 
 Arg value 1.07654321E-9
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, float given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, float given
 
 Arg value 0.5
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, float given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, float given
 Error: 2 - Array to string conversion
 
 Arg value Array
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, array given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, array given
 Error: 2 - Array to string conversion
 
 Arg value Array
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, array given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, array given
 Error: 2 - Array to string conversion
 
 Arg value Array
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, array given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, array given
 Error: 2 - Array to string conversion
 
 Arg value Array
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, array given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, array given
 Error: 2 - Array to string conversion
 
 Arg value Array
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, array given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, array given
 
 Arg value 
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, null given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, null given
 
 Arg value 
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, null given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, null given
 
 Arg value 1
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, bool given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, bool given
 
 Arg value 
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, bool given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, bool given
 
 Arg value 1
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, bool given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, bool given
 
 Arg value 
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, bool given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, bool given
 
 Arg value 
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, string given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, string given
 
 Arg value 
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, string given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, string given
 
 Arg value string
 In autoload(string)
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, string given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, string given
 
 Arg value String
 In autoload(String)
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, string given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, string given
 
 Arg value stdClass
 bool(false)
 
 Arg value 
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, null given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, null given
 
 Arg value 
-get_parent_class(): Argument #1 ($object) must be a valid class name or object, null given
+get_parent_class(): Argument #1 ($object_or_class) must be a valid class name or object, null given
 Done
index 87401fdc67281dd63766f76e4aaa7fc95a81d76f..43569e47294c66ce2904fd677ed3c0c8334a30d3 100644 (file)
@@ -23,9 +23,9 @@ echo "Done\n";
 --EXPECTF--
 Warning: sort(): Argument #1 ($arg) must be passed by reference, value given in %s on line %d
 bool(true)
-strlen(): Argument #1 ($str) must be of type string, array given
+strlen(): Argument #1 ($string) must be of type string, array given
 
 Warning: sort(): Argument #1 ($arg) must be passed by reference, value given in %s on line %d
 bool(true)
-strlen(): Argument #1 ($str) must be of type string, array given
+strlen(): Argument #1 ($string) must be of type string, array given
 Done
index 5e3ef4f0a09915f7468e89235dc37aeb46e0f1ae..d775612498576f92507e4c7023830394fa4711e9 100644 (file)
@@ -21,9 +21,9 @@ var_dump(strncasecmp("test ", "E", 0));
 
 ?>
 --EXPECTF--
-strncmp(): Argument #3 ($len) must be greater than or equal to 0
+strncmp(): Argument #3 ($length) must be greater than or equal to 0
 int(%d)
 int(0)
-strncasecmp(): Argument #3 ($len) must be greater than or equal to 0
+strncasecmp(): Argument #3 ($length) must be greater than or equal to 0
 int(%d)
 int(0)
index 6b303c0607ef6f5e0fcc86c739f81419041efc8e..46bbdbe3b0e58816d1b79afc5c9be5078f8c478c 100644 (file)
@@ -19,4 +19,4 @@ try {
 --EXPECT--
 *** Testing strncasecmp() function: error conditions ***
 -- Testing strncasecmp() function with invalid argument --
-strncasecmp(): Argument #3 ($len) must be greater than or equal to 0
+strncasecmp(): Argument #3 ($length) must be greater than or equal to 0
index d5566a3f053d8c5a30333d42f43d6d2941439568..ed83651072c0c27909ae5597fdf6bc99fd9cde8a 100644 (file)
@@ -20,4 +20,4 @@ try {
 ?>
 --EXPECT--
 *** Testing strncmp() function: error conditions ***
-strncmp(): Argument #3 ($len) must be greater than or equal to 0
+strncmp(): Argument #3 ($length) must be greater than or equal to 0
index 60ce81a4cee8d948a7bac77d1a1676c9be3db3e1..9220439c884bd2e1576b9c6ed75dbb408bf5a70d 100644 (file)
@@ -6,14 +6,20 @@ sebs@php.net
 Testfest Munich 2009
 --FILE--
 <?php
-define('::', true);
 try {
-    var_dump(constant('::'));
+    define('::', true);
+} catch (ValueError $e) {
+    echo $e->getMessage(), "\n";
+}
+
+try {
+    constant('::');
 } catch (Error $e) {
     echo $e->getMessage(), "\n";
 }
+
 ?>
 --EXPECTF--
-Warning: Class constants cannot be defined or redefined in %s on line %d
+define(): Argument #1 ($constant_name) cannot be a class constant
 
 Fatal error: Class "" not found in %s on line %d
index b215b1e51510a8b9559b7b91625139120907de77..91e0025ee417fafa2fdbf6031bf243dce04b6a86 100644 (file)
@@ -15,4 +15,4 @@ foo(2, 3);
 
 ?>
 --EXPECT--
-func_get_arg(): Argument 2 not passed to function
+func_get_arg(): Argument #1 ($position) must be less than the number of the arguments passed to the currently executed function
index eb608ad0f06d8343a3e84e5a9d1339bc9a8cfbaf..1c4f243fbf72d3f798ec44c545a050351432c884 100644 (file)
@@ -22,5 +22,5 @@ foo(2);
 
 ?>
 --EXPECT--
-func_get_arg(): Argument #1 ($arg_num) must be greater than or equal to 0
-func_get_arg(): Argument 2 not passed to function
+func_get_arg(): Argument #1 ($position) must be greater than or equal to 0
+func_get_arg(): Argument #1 ($position) must be less than the number of the arguments passed to the currently executed function
index 1520c31ed4f1d044d6205bd5cddd119bda2d4d6f..0d97109dcc5939e2e800a1c5e796d10fc67307dc 100644 (file)
@@ -3,9 +3,12 @@ func_num_args() outside of a function declaration
 --FILE--
 <?php
 
-var_dump(func_num_args());
+try {
+    func_num_args();
+} catch (Error $exception) {
+    echo $exception->getMessage() . "\n";
+}
 
 ?>
---EXPECTF--
-Warning: func_num_args():  Called from the global scope - no function context in %s on line %d
-int(-1)
+--EXPECT--
+func_num_args() must be called from a function context