summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Peter Banyard <girgias@php.net>2019-08-21 01:52:17 +0200
committerGeorge Peter Banyard <girgias@php.net>2019-08-22 19:27:47 +0200
commit7dcbcd4ca5bf954f56e28a233215359050041893 (patch)
tree0f234f91e1a656cedc77c16cc83df8acd2c2dd67
parentcee24be5b3893423fa0abd8d5e15204ff18d1e22 (diff)
downloadphp-git-7dcbcd4ca5bf954f56e28a233215359050041893.tar.gz
Promote warnings to errors in array_column()
-rw-r--r--ext/standard/array.c4
-rw-r--r--ext/standard/tests/array/array_column_error.phpt48
2 files changed, 31 insertions, 21 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c
index 164b7da046..d37025dc9c 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -4131,7 +4131,7 @@ zend_bool array_column_param_helper(zval *param,
return 1;
default:
- php_error_docref(NULL, E_WARNING, "The %s key should be either a string or an integer", name);
+ zend_type_error("The %s key should be either a string or an integer", name);
return 0;
}
}
@@ -4194,7 +4194,7 @@ PHP_FUNCTION(array_column)
if ((column && !array_column_param_helper(column, "column")) ||
(index && !array_column_param_helper(index, "index"))) {
- RETURN_FALSE;
+ return;
}
array_init_size(return_value, zend_hash_num_elements(input));
diff --git a/ext/standard/tests/array/array_column_error.phpt b/ext/standard/tests/array/array_column_error.phpt
index 9223248520..6fb5169d45 100644
--- a/ext/standard/tests/array/array_column_error.phpt
+++ b/ext/standard/tests/array/array_column_error.phpt
@@ -10,41 +10,51 @@ Test array_column() function: error conditions
*/
echo "*** Testing array_column() : error conditions ***\n";
-
echo "\n-- Testing array_column() column key parameter should be a string or an integer (testing bool) --\n";
-var_dump(array_column(array(), true));
+try {
+ var_dump(array_column(array(), true));
+} catch (\TypeError $e) {
+ echo $e->getMessage() . "\n";
+}
+
echo "\n-- Testing array_column() column key parameter should be a string or integer (testing array) --\n";
-var_dump(array_column(array(), array()));
+try {
+ var_dump(array_column(array(), array()));
+} catch (\TypeError $e) {
+ echo $e->getMessage() . "\n";
+}
echo "\n-- Testing array_column() index key parameter should be a string or an integer (testing bool) --\n";
-var_dump(array_column(array(), 'foo', true));
+try {
+ var_dump(array_column(array(), 'foo', true));
+} catch (\TypeError $e) {
+ echo $e->getMessage() . "\n";
+}
echo "\n-- Testing array_column() index key parameter should be a string or integer (testing array) --\n";
-var_dump(array_column(array(), 'foo', array()));
+try {
+ var_dump(array_column(array(), 'foo', array()));
+} catch (\TypeError $e) {
+ echo $e->getMessage() . "\n";
+}
-echo "Done\n";
?>
---EXPECTF--
+
+DONE
+--EXPECT--
*** Testing array_column() : error conditions ***
-- Testing array_column() column key parameter should be a string or an integer (testing bool) --
-
-Warning: array_column(): The column key should be either a string or an integer in %s on line %d
-bool(false)
+The column key should be either a string or an integer
-- Testing array_column() column key parameter should be a string or integer (testing array) --
-
-Warning: array_column(): The column key should be either a string or an integer in %s on line %d
-bool(false)
+The column key should be either a string or an integer
-- Testing array_column() index key parameter should be a string or an integer (testing bool) --
-
-Warning: array_column(): The index key should be either a string or an integer in %s on line %d
-bool(false)
+The index key should be either a string or an integer
-- Testing array_column() index key parameter should be a string or integer (testing array) --
+The index key should be either a string or an integer
-Warning: array_column(): The index key should be either a string or an integer in %s on line %d
-bool(false)
-Done
+DONE