]> granicus.if.org Git - php/commitdiff
Fixed bug #77931
authorNikita Popov <nikita.ppv@gmail.com>
Tue, 23 Apr 2019 09:40:13 +0000 (11:40 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Tue, 23 Apr 2019 09:40:13 +0000 (11:40 +0200)
NEWS
ext/standard/array.c
ext/standard/tests/array/bug77931.phpt [new file with mode: 0644]

diff --git a/NEWS b/NEWS
index 396dbd1d4290e113f80e4f894b03109edf416cb1..ab5e05d867410f4f57179616e90602e729213265 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -8,6 +8,9 @@ PHP                                                                        NEWS
 - Session:
   . Fixed bug #77911 (Wrong warning for session.sid_bits_per_character). (cmb)
 
+- Standard:
+  . Fixed bug #77931 (Warning for array_map mentions wrong type). (Nikita)
+
 02 May 2019, PHP 7.3.5
 
 - Core:
index 3c8723fca754a7d7206d74635f73b5a7f5e75d99..f5cf77b01c4b05992d9b6ccbad08d9b8436dd0f4 100644 (file)
@@ -6158,7 +6158,7 @@ PHP_FUNCTION(array_map)
 
                for (i = 0; i < n_arrays; i++) {
                        if (Z_TYPE(arrays[i]) != IS_ARRAY) {
-                               php_error_docref(NULL, E_WARNING, "Expected parameter %d to be an array, %s given", i + 2, zend_zval_type_name(&arrays[0]));
+                               php_error_docref(NULL, E_WARNING, "Expected parameter %d to be an array, %s given", i + 2, zend_zval_type_name(&arrays[i]));
                                efree(array_pos);
                                return;
                        }
diff --git a/ext/standard/tests/array/bug77931.phpt b/ext/standard/tests/array/bug77931.phpt
new file mode 100644 (file)
index 0000000..98a2eb9
--- /dev/null
@@ -0,0 +1,16 @@
+--TEST--
+Bug #77931: Warning for array_map mentions wrong type
+--FILE--
+<?php
+
+array_map('trim', array(), 1);
+array_map('trim', array(), array(), true);
+array_map('trim', array(), array(), array(), null);
+
+?>
+--EXPECTF--
+Warning: array_map(): Expected parameter 3 to be an array, int given in %s on line %d
+
+Warning: array_map(): Expected parameter 4 to be an array, bool given in %s on line %d
+
+Warning: array_map(): Expected parameter 5 to be an array, null given in %s on line %d