summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2021-02-24 19:12:32 +0300
committerDmitry Stogov <dmitry@zend.com>2021-02-24 19:12:32 +0300
commit99d0f502dcde51b0a5e96d8f4267d60ed78b8e2b (patch)
tree106af3bde884daa7e69995a7fcc6cade3bced8de
parent23afc62080588f612fa6c5d0ea217564930dab3d (diff)
downloadphp-git-99d0f502dcde51b0a5e96d8f4267d60ed78b8e2b.tar.gz
Fixed error message
-rw-r--r--Zend/tests/bug70895.phpt6
-rw-r--r--Zend/tests/bug70898.phpt2
-rw-r--r--Zend/tests/type_declarations/internal_function_strict_mode.phpt2
-rw-r--r--Zend/zend_API.c14
-rw-r--r--Zend/zend_API.h4
-rw-r--r--ext/spl/tests/spl_autoload_001.phpt2
-rw-r--r--ext/spl/tests/spl_autoload_005.phpt2
-rw-r--r--ext/spl/tests/spl_autoload_007.phpt16
-rw-r--r--ext/spl/tests/spl_autoload_008.phpt4
-rw-r--r--ext/standard/tests/array/array_filter_variation9.phpt4
-rw-r--r--ext/standard/tests/array/array_map_object1.phpt10
-rw-r--r--ext/standard/tests/array/array_map_object2.phpt4
-rw-r--r--ext/standard/tests/array/array_map_object3.phpt4
-rw-r--r--ext/standard/tests/array/array_map_variation12.phpt2
-rw-r--r--ext/standard/tests/array/array_map_variation14.phpt4
-rw-r--r--ext/standard/tests/array/array_map_variation15.phpt2
-rw-r--r--ext/standard/tests/array/array_map_variation16.phpt16
-rw-r--r--ext/standard/tests/array/array_map_variation17.phpt40
18 files changed, 77 insertions, 61 deletions
diff --git a/Zend/tests/bug70895.phpt b/Zend/tests/bug70895.phpt
index 1a28d9ef5c..afbea1c91d 100644
--- a/Zend/tests/bug70895.phpt
+++ b/Zend/tests/bug70895.phpt
@@ -20,6 +20,6 @@ try {
}
?>
--EXPECT--
-array_map(): Argument #1 ($callback) must be a valid callback, function "%n" not found or invalid function name
-array_map(): Argument #1 ($callback) must be a valid callback, function "%n %i" not found or invalid function name
-array_map(): Argument #1 ($callback) must be a valid callback, function "%n %i aoeu %f aoeu %p" not found or invalid function name
+array_map(): Argument #1 ($callback) must be a valid callback or null, function "%n" not found or invalid function name
+array_map(): Argument #1 ($callback) must be a valid callback or null, function "%n %i" not found or invalid function name
+array_map(): Argument #1 ($callback) must be a valid callback or null, function "%n %i aoeu %f aoeu %p" not found or invalid function name
diff --git a/Zend/tests/bug70898.phpt b/Zend/tests/bug70898.phpt
index 2aff5109d8..d3d2cf79a9 100644
--- a/Zend/tests/bug70898.phpt
+++ b/Zend/tests/bug70898.phpt
@@ -13,4 +13,4 @@ try {
}
?>
--EXPECT--
-array_map(): Argument #1 ($callback) must be a valid callback, function "0000000000000000000000000000000000" not found or invalid function name
+array_map(): Argument #1 ($callback) must be a valid callback or null, function "0000000000000000000000000000000000" not found or invalid function name
diff --git a/Zend/tests/type_declarations/internal_function_strict_mode.phpt b/Zend/tests/type_declarations/internal_function_strict_mode.phpt
index 04c59ae341..455164f327 100644
--- a/Zend/tests/type_declarations/internal_function_strict_mode.phpt
+++ b/Zend/tests/type_declarations/internal_function_strict_mode.phpt
@@ -30,6 +30,6 @@ try {
*** Trying Ord With Integer
*** Caught ord(): Argument #1 ($character) must be of type string, int given
*** Trying Array Map With Invalid Callback
-*** Caught array_map(): Argument #1 ($callback) must be a valid callback, first array member is not a valid class name or object
+*** Caught array_map(): Argument #1 ($callback) must be a valid callback or null, first array member is not a valid class name or object
*** Trying Strlen With Float
*** Caught strlen(): Argument #1 ($str) must be of type string, float given
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index 6aa9a043ff..e532e9754a 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -215,6 +215,9 @@ ZEND_API ZEND_COLD void ZEND_FASTCALL zend_wrong_parameter_error(int error_code,
case ZPP_ERROR_WRONG_CALLBACK:
zend_wrong_callback_error(num, name);
break;
+ case ZPP_ERROR_WRONG_CALLBACK_OR_NULL:
+ zend_wrong_callback_or_null_error(num, name);
+ break;
case ZPP_ERROR_WRONG_CLASS:
zend_wrong_parameter_class_error(num, name, arg);
break;
@@ -337,6 +340,17 @@ ZEND_API ZEND_COLD void ZEND_FASTCALL zend_wrong_callback_error(uint32_t num, ch
}
/* }}} */
+ZEND_API ZEND_COLD void ZEND_FASTCALL zend_wrong_callback_or_null_error(uint32_t num, char *error) /* {{{ */
+{
+ if (EG(exception)) {
+ return;
+ }
+
+ zend_argument_type_error(num, "must be a valid callback or null, %s", error);
+ efree(error);
+}
+/* }}} */
+
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_unexpected_extra_named_error(void)
{
const char *space;
diff --git a/Zend/zend_API.h b/Zend/zend_API.h
index a811d9c533..8072befb03 100644
--- a/Zend/zend_API.h
+++ b/Zend/zend_API.h
@@ -1306,6 +1306,7 @@ ZEND_API ZEND_COLD void ZEND_FASTCALL zend_wrong_parameter_class_or_long_or_null
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_wrong_parameter_class_or_string_error(uint32_t num, const char *name, zval *arg);
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_wrong_parameter_class_or_string_or_null_error(uint32_t num, const char *name, zval *arg);
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_wrong_callback_error(uint32_t num, char *error);
+ZEND_API ZEND_COLD void ZEND_FASTCALL zend_wrong_callback_or_null_error(uint32_t num, char *error);
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_unexpected_extra_named_error(void);
ZEND_API ZEND_COLD void zend_argument_error(zend_class_entry *error_ce, uint32_t arg_num, const char *format, ...);
ZEND_API ZEND_COLD void zend_argument_type_error(uint32_t arg_num, const char *format, ...);
@@ -1323,6 +1324,7 @@ ZEND_API ZEND_COLD void zend_argument_value_error(uint32_t arg_num, const char *
#define ZPP_ERROR_WRONG_ARG 9
#define ZPP_ERROR_WRONG_COUNT 10
#define ZPP_ERROR_UNEXPECTED_EXTRA_NAMED 11
+#define ZPP_ERROR_WRONG_CALLBACK_OR_NULL 12
#define ZEND_PARSE_PARAMETERS_START_EX(flags, min_num_args, max_num_args) do { \
const int _flags = (flags); \
@@ -1547,7 +1549,7 @@ ZEND_API ZEND_COLD void zend_argument_value_error(uint32_t arg_num, const char *
_expected_type = check_null ? Z_EXPECTED_FUNC_OR_NULL : Z_EXPECTED_FUNC; \
_error_code = ZPP_ERROR_WRONG_ARG; \
} else { \
- _error_code = ZPP_ERROR_WRONG_CALLBACK; \
+ _error_code = check_null ? ZPP_ERROR_WRONG_CALLBACK_OR_NULL : ZPP_ERROR_WRONG_CALLBACK; \
} \
break; \
} \
diff --git a/ext/spl/tests/spl_autoload_001.phpt b/ext/spl/tests/spl_autoload_001.phpt
index c7f5e573f3..befb965709 100644
--- a/ext/spl/tests/spl_autoload_001.phpt
+++ b/ext/spl/tests/spl_autoload_001.phpt
@@ -100,4 +100,4 @@ TestFunc2(TestClass)
%stestclass.class.inc
bool(true)
===NOFUNCTION===
-spl_autoload_register(): Argument #1 ($callback) must be a valid callback, function "unavailable_autoload_function" not found or invalid function name
+spl_autoload_register(): Argument #1 ($callback) must be a valid callback or null, function "unavailable_autoload_function" not found or invalid function name
diff --git a/ext/spl/tests/spl_autoload_005.phpt b/ext/spl/tests/spl_autoload_005.phpt
index 6eb8510325..0f2c5ed2c3 100644
--- a/ext/spl/tests/spl_autoload_005.phpt
+++ b/ext/spl/tests/spl_autoload_005.phpt
@@ -43,7 +43,7 @@ catch(Exception $e)
?>
--EXPECT--
-spl_autoload_register(): Argument #1 ($callback) must be a valid callback, non-static method MyAutoLoader::autoLoad() cannot be called statically
+spl_autoload_register(): Argument #1 ($callback) must be a valid callback or null, non-static method MyAutoLoader::autoLoad() cannot be called statically
MyAutoLoader::autoLoad(TestClass)
MyAutoLoader::autoThrow(TestClass)
Exception: Unavailable
diff --git a/ext/spl/tests/spl_autoload_007.phpt b/ext/spl/tests/spl_autoload_007.phpt
index 589ce74b7f..0a8183dfb4 100644
--- a/ext/spl/tests/spl_autoload_007.phpt
+++ b/ext/spl/tests/spl_autoload_007.phpt
@@ -52,16 +52,16 @@ foreach($funcs as $idx => $func)
?>
--EXPECTF--
string(22) "MyAutoLoader::notExist"
-spl_autoload_register(): Argument #1 ($callback) must be a valid callback, class MyAutoLoader does not have a method "notExist"
+spl_autoload_register(): Argument #1 ($callback) must be a valid callback or null, class MyAutoLoader does not have a method "notExist"
string(22) "MyAutoLoader::noAccess"
-spl_autoload_register(): Argument #1 ($callback) must be a valid callback, cannot access protected method MyAutoLoader::noAccess()
+spl_autoload_register(): Argument #1 ($callback) must be a valid callback or null, cannot access protected method MyAutoLoader::noAccess()
string(22) "MyAutoLoader::autoLoad"
ok
string(22) "MyAutoLoader::dynaLoad"
-spl_autoload_register(): Argument #1 ($callback) must be a valid callback, non-static method MyAutoLoader::dynaLoad() cannot be called statically
+spl_autoload_register(): Argument #1 ($callback) must be a valid callback or null, non-static method MyAutoLoader::dynaLoad() cannot be called statically
array(2) {
[0]=>
@@ -69,7 +69,7 @@ array(2) {
[1]=>
string(8) "notExist"
}
-spl_autoload_register(): Argument #1 ($callback) must be a valid callback, class MyAutoLoader does not have a method "notExist"
+spl_autoload_register(): Argument #1 ($callback) must be a valid callback or null, class MyAutoLoader does not have a method "notExist"
array(2) {
[0]=>
@@ -77,7 +77,7 @@ array(2) {
[1]=>
string(8) "noAccess"
}
-spl_autoload_register(): Argument #1 ($callback) must be a valid callback, cannot access protected method MyAutoLoader::noAccess()
+spl_autoload_register(): Argument #1 ($callback) must be a valid callback or null, cannot access protected method MyAutoLoader::noAccess()
array(2) {
[0]=>
@@ -93,7 +93,7 @@ array(2) {
[1]=>
string(8) "dynaLoad"
}
-spl_autoload_register(): Argument #1 ($callback) must be a valid callback, non-static method MyAutoLoader::dynaLoad() cannot be called statically
+spl_autoload_register(): Argument #1 ($callback) must be a valid callback or null, non-static method MyAutoLoader::dynaLoad() cannot be called statically
array(2) {
[0]=>
@@ -102,7 +102,7 @@ array(2) {
[1]=>
string(8) "notExist"
}
-spl_autoload_register(): Argument #1 ($callback) must be a valid callback, class MyAutoLoader does not have a method "notExist"
+spl_autoload_register(): Argument #1 ($callback) must be a valid callback or null, class MyAutoLoader does not have a method "notExist"
array(2) {
[0]=>
@@ -111,7 +111,7 @@ array(2) {
[1]=>
string(8) "noAccess"
}
-spl_autoload_register(): Argument #1 ($callback) must be a valid callback, cannot access protected method MyAutoLoader::noAccess()
+spl_autoload_register(): Argument #1 ($callback) must be a valid callback or null, cannot access protected method MyAutoLoader::noAccess()
array(2) {
[0]=>
diff --git a/ext/spl/tests/spl_autoload_008.phpt b/ext/spl/tests/spl_autoload_008.phpt
index 99f61cd561..738c691ddf 100644
--- a/ext/spl/tests/spl_autoload_008.phpt
+++ b/ext/spl/tests/spl_autoload_008.phpt
@@ -81,7 +81,7 @@ Exception: Bla
int(0)
====2====
string(22) "MyAutoLoader::dynaLoad"
-TypeError: spl_autoload_register(): Argument #1 ($callback) must be a valid callback, non-static method MyAutoLoader::dynaLoad() cannot be called statically
+TypeError: spl_autoload_register(): Argument #1 ($callback) must be a valid callback or null, non-static method MyAutoLoader::dynaLoad() cannot be called statically
int(0)
====3====
array(2) {
@@ -101,7 +101,7 @@ array(2) {
[1]=>
string(8) "dynaLoad"
}
-TypeError: spl_autoload_register(): Argument #1 ($callback) must be a valid callback, non-static method MyAutoLoader::dynaLoad() cannot be called statically
+TypeError: spl_autoload_register(): Argument #1 ($callback) must be a valid callback or null, non-static method MyAutoLoader::dynaLoad() cannot be called statically
int(0)
====5====
array(2) {
diff --git a/ext/standard/tests/array/array_filter_variation9.phpt b/ext/standard/tests/array/array_filter_variation9.phpt
index d9abf7dac1..d9c1f9258f 100644
--- a/ext/standard/tests/array/array_filter_variation9.phpt
+++ b/ext/standard/tests/array/array_filter_variation9.phpt
@@ -62,6 +62,6 @@ array(6) {
[5]=>
int(1000)
}
-array_filter(): Argument #2 ($callback) must be a valid callback, function "echo" not found or invalid function name
-array_filter(): Argument #2 ($callback) must be a valid callback, function "exit" not found or invalid function name
+array_filter(): Argument #2 ($callback) must be a valid callback or null, function "echo" not found or invalid function name
+array_filter(): Argument #2 ($callback) must be a valid callback or null, function "exit" not found or invalid function name
Done
diff --git a/ext/standard/tests/array/array_map_object1.phpt b/ext/standard/tests/array/array_map_object1.phpt
index b5da9798e4..88ebe2414b 100644
--- a/ext/standard/tests/array/array_map_object1.phpt
+++ b/ext/standard/tests/array/array_map_object1.phpt
@@ -132,15 +132,15 @@ array(2) {
-- simple class with private variable and method --
SimpleClassPri::add
-array_map(): Argument #1 ($callback) must be a valid callback, cannot access private method SimpleClassPri::add()
+array_map(): Argument #1 ($callback) must be a valid callback or null, cannot access private method SimpleClassPri::add()
-- simple class with protected variable and method --
SimpleClassPro::mul
-array_map(): Argument #1 ($callback) must be a valid callback, cannot access protected method SimpleClassPro::mul()
+array_map(): Argument #1 ($callback) must be a valid callback or null, cannot access protected method SimpleClassPro::mul()
-- class without members --
EmptyClass
-array_map(): Argument #1 ($callback) must be a valid callback, array must have exactly two members
+array_map(): Argument #1 ($callback) must be a valid callback or null, array must have exactly two members
-- abstract class --
ChildClass::emptyFunction
@@ -173,9 +173,9 @@ array(2) {
int(4)
}
StaticClass::cube
-array_map(): Argument #1 ($callback) must be a valid callback, cannot access private method StaticClass::cube()
+array_map(): Argument #1 ($callback) must be a valid callback or null, cannot access private method StaticClass::cube()
StaticClass::retVal
-array_map(): Argument #1 ($callback) must be a valid callback, cannot access protected method StaticClass::retVal()
+array_map(): Argument #1 ($callback) must be a valid callback or null, cannot access protected method StaticClass::retVal()
-- class implementing an interface --
InterClass::square
array(2) {
diff --git a/ext/standard/tests/array/array_map_object2.phpt b/ext/standard/tests/array/array_map_object2.phpt
index 53524fc819..3b9666ce50 100644
--- a/ext/standard/tests/array/array_map_object2.phpt
+++ b/ext/standard/tests/array/array_map_object2.phpt
@@ -39,7 +39,7 @@ echo "Done";
--EXPECT--
*** Testing array_map() : with non-existent class and method ***
-- with non-existent class --
-array_map(): Argument #1 ($callback) must be a valid callback, class "non-existent" not found
+array_map(): Argument #1 ($callback) must be a valid callback or null, class "non-existent" not found
-- with existent class and non-existent method --
-array_map(): Argument #1 ($callback) must be a valid callback, class SimpleClass does not have a method "non-existent"
+array_map(): Argument #1 ($callback) must be a valid callback or null, class SimpleClass does not have a method "non-existent"
Done
diff --git a/ext/standard/tests/array/array_map_object3.phpt b/ext/standard/tests/array/array_map_object3.phpt
index b5528c9e7c..55a97a317f 100644
--- a/ext/standard/tests/array/array_map_object3.phpt
+++ b/ext/standard/tests/array/array_map_object3.phpt
@@ -76,7 +76,7 @@ array(3) {
int(7)
}
-- accessing child method from parent class --
-array_map(): Argument #1 ($callback) must be a valid callback, class ParentClass does not have a method "staticChild"
+array_map(): Argument #1 ($callback) must be a valid callback or null, class ParentClass does not have a method "staticChild"
-- accessing parent method using child class object --
array(3) {
[0]=>
@@ -87,5 +87,5 @@ array(3) {
int(7)
}
-- accessing child method using parent class object --
-array_map(): Argument #1 ($callback) must be a valid callback, class ParentClass does not have a method "staticChild"
+array_map(): Argument #1 ($callback) must be a valid callback or null, class ParentClass does not have a method "staticChild"
Done
diff --git a/ext/standard/tests/array/array_map_variation12.phpt b/ext/standard/tests/array/array_map_variation12.phpt
index b642bd0cb5..d3fa62e93d 100644
--- a/ext/standard/tests/array/array_map_variation12.phpt
+++ b/ext/standard/tests/array/array_map_variation12.phpt
@@ -44,5 +44,5 @@ array(3) {
-- with built-in function 'pow' and one parameter --
pow() expects exactly 2 arguments, 1 given
-- with language construct --
-array_map(): Argument #1 ($callback) must be a valid callback, function "echo" not found or invalid function name
+array_map(): Argument #1 ($callback) must be a valid callback or null, function "echo" not found or invalid function name
Done
diff --git a/ext/standard/tests/array/array_map_variation14.phpt b/ext/standard/tests/array/array_map_variation14.phpt
index 2670537b46..d1f0b517ea 100644
--- a/ext/standard/tests/array/array_map_variation14.phpt
+++ b/ext/standard/tests/array/array_map_variation14.phpt
@@ -118,7 +118,7 @@ array(2) {
int(2)
}
-- with empty string --
-array_map(): Argument #1 ($callback) must be a valid callback, function "" not found or invalid function name
+array_map(): Argument #1 ($callback) must be a valid callback or null, function "" not found or invalid function name
-- with empty array --
-array_map(): Argument #1 ($callback) must be a valid callback, array must have exactly two members
+array_map(): Argument #1 ($callback) must be a valid callback or null, array must have exactly two members
Done
diff --git a/ext/standard/tests/array/array_map_variation15.phpt b/ext/standard/tests/array/array_map_variation15.phpt
index f10be3cc32..d053a72046 100644
--- a/ext/standard/tests/array/array_map_variation15.phpt
+++ b/ext/standard/tests/array/array_map_variation15.phpt
@@ -23,5 +23,5 @@ echo "Done";
?>
--EXPECT--
*** Testing array_map() : non existent 'callback' function ***
-array_map(): Argument #1 ($callback) must be a valid callback, function "non_existent" not found or invalid function name
+array_map(): Argument #1 ($callback) must be a valid callback or null, function "non_existent" not found or invalid function name
Done
diff --git a/ext/standard/tests/array/array_map_variation16.phpt b/ext/standard/tests/array/array_map_variation16.phpt
index 21034375b9..b7c6690040 100644
--- a/ext/standard/tests/array/array_map_variation16.phpt
+++ b/ext/standard/tests/array/array_map_variation16.phpt
@@ -38,19 +38,19 @@ echo "Done";
--EXPECT--
*** Testing array_map() : non-permmited built-in functions ***
-- Iteration 1 --
-array_map(): Argument #1 ($callback) must be a valid callback, function "echo" not found or invalid function name
+array_map(): Argument #1 ($callback) must be a valid callback or null, function "echo" not found or invalid function name
-- Iteration 2 --
-array_map(): Argument #1 ($callback) must be a valid callback, function "array" not found or invalid function name
+array_map(): Argument #1 ($callback) must be a valid callback or null, function "array" not found or invalid function name
-- Iteration 3 --
-array_map(): Argument #1 ($callback) must be a valid callback, function "empty" not found or invalid function name
+array_map(): Argument #1 ($callback) must be a valid callback or null, function "empty" not found or invalid function name
-- Iteration 4 --
-array_map(): Argument #1 ($callback) must be a valid callback, function "eval" not found or invalid function name
+array_map(): Argument #1 ($callback) must be a valid callback or null, function "eval" not found or invalid function name
-- Iteration 5 --
-array_map(): Argument #1 ($callback) must be a valid callback, function "exit" not found or invalid function name
+array_map(): Argument #1 ($callback) must be a valid callback or null, function "exit" not found or invalid function name
-- Iteration 6 --
-array_map(): Argument #1 ($callback) must be a valid callback, function "isset" not found or invalid function name
+array_map(): Argument #1 ($callback) must be a valid callback or null, function "isset" not found or invalid function name
-- Iteration 7 --
-array_map(): Argument #1 ($callback) must be a valid callback, function "list" not found or invalid function name
+array_map(): Argument #1 ($callback) must be a valid callback or null, function "list" not found or invalid function name
-- Iteration 8 --
-array_map(): Argument #1 ($callback) must be a valid callback, function "print" not found or invalid function name
+array_map(): Argument #1 ($callback) must be a valid callback or null, function "print" not found or invalid function name
Done
diff --git a/ext/standard/tests/array/array_map_variation17.phpt b/ext/standard/tests/array/array_map_variation17.phpt
index a3aeb9f22a..78b8d8c5c8 100644
--- a/ext/standard/tests/array/array_map_variation17.phpt
+++ b/ext/standard/tests/array/array_map_variation17.phpt
@@ -76,62 +76,62 @@ echo "Done";
*** Testing array_map() : unexpected values for 'callback' argument ***
-- Iteration 1 --
-array_map(): Argument #1 ($callback) must be a valid callback, no array or string given
+array_map(): Argument #1 ($callback) must be a valid callback or null, no array or string given
-- Iteration 2 --
-array_map(): Argument #1 ($callback) must be a valid callback, no array or string given
+array_map(): Argument #1 ($callback) must be a valid callback or null, no array or string given
-- Iteration 3 --
-array_map(): Argument #1 ($callback) must be a valid callback, no array or string given
+array_map(): Argument #1 ($callback) must be a valid callback or null, no array or string given
-- Iteration 4 --
-array_map(): Argument #1 ($callback) must be a valid callback, no array or string given
+array_map(): Argument #1 ($callback) must be a valid callback or null, no array or string given
-- Iteration 5 --
-array_map(): Argument #1 ($callback) must be a valid callback, no array or string given
+array_map(): Argument #1 ($callback) must be a valid callback or null, no array or string given
-- Iteration 6 --
-array_map(): Argument #1 ($callback) must be a valid callback, no array or string given
+array_map(): Argument #1 ($callback) must be a valid callback or null, no array or string given
-- Iteration 7 --
-array_map(): Argument #1 ($callback) must be a valid callback, no array or string given
+array_map(): Argument #1 ($callback) must be a valid callback or null, no array or string given
-- Iteration 8 --
-array_map(): Argument #1 ($callback) must be a valid callback, no array or string given
+array_map(): Argument #1 ($callback) must be a valid callback or null, no array or string given
-- Iteration 9 --
-array_map(): Argument #1 ($callback) must be a valid callback, no array or string given
+array_map(): Argument #1 ($callback) must be a valid callback or null, no array or string given
-- Iteration 10 --
-array_map(): Argument #1 ($callback) must be a valid callback, no array or string given
+array_map(): Argument #1 ($callback) must be a valid callback or null, no array or string given
-- Iteration 11 --
-array_map(): Argument #1 ($callback) must be a valid callback, no array or string given
+array_map(): Argument #1 ($callback) must be a valid callback or null, no array or string given
-- Iteration 12 --
-array_map(): Argument #1 ($callback) must be a valid callback, no array or string given
+array_map(): Argument #1 ($callback) must be a valid callback or null, no array or string given
-- Iteration 13 --
-array_map(): Argument #1 ($callback) must be a valid callback, no array or string given
+array_map(): Argument #1 ($callback) must be a valid callback or null, no array or string given
-- Iteration 14 --
-array_map(): Argument #1 ($callback) must be a valid callback, function "" not found or invalid function name
+array_map(): Argument #1 ($callback) must be a valid callback or null, function "" not found or invalid function name
-- Iteration 15 --
-array_map(): Argument #1 ($callback) must be a valid callback, function "" not found or invalid function name
+array_map(): Argument #1 ($callback) must be a valid callback or null, function "" not found or invalid function name
-- Iteration 16 --
-array_map(): Argument #1 ($callback) must be a valid callback, array must have exactly two members
+array_map(): Argument #1 ($callback) must be a valid callback or null, array must have exactly two members
-- Iteration 17 --
-array_map(): Argument #1 ($callback) must be a valid callback, first array member is not a valid class name or object
+array_map(): Argument #1 ($callback) must be a valid callback or null, first array member is not a valid class name or object
-- Iteration 18 --
-array_map(): Argument #1 ($callback) must be a valid callback, first array member is not a valid class name or object
+array_map(): Argument #1 ($callback) must be a valid callback or null, first array member is not a valid class name or object
-- Iteration 19 --
-array_map(): Argument #1 ($callback) must be a valid callback, no array or string given
+array_map(): Argument #1 ($callback) must be a valid callback or null, no array or string given
-- Iteration 20 --
-array_map(): Argument #1 ($callback) must be a valid callback, no array or string given
+array_map(): Argument #1 ($callback) must be a valid callback or null, no array or string given
Done