summaryrefslogtreecommitdiff
path: root/ext/standard/array.c
diff options
context:
space:
mode:
authorBen Ramsey <ramsey@php.net>2012-04-14 08:23:51 -0500
committerBen Ramsey <ramsey@php.net>2013-01-11 14:16:19 -0600
commite921d28ae31e77965800c29454c4d426650126f0 (patch)
tree3480fae3dd084845316736a0e22639dc5e2c66c0 /ext/standard/array.c
parent10da6f00b8d0fa573b3c44f685377a98a816af51 (diff)
downloadphp-git-e921d28ae31e77965800c29454c4d426650126f0.tar.gz
array_column: Cleaning up, as recommended in pull request #56 comments
Diffstat (limited to 'ext/standard/array.c')
-rw-r--r--ext/standard/array.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c
index c5d0fa7747..b5d8275de7 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -2578,19 +2578,11 @@ PHP_FUNCTION(array_column)
return;
}
- arr_hash = Z_ARRVAL_P(zarray);
- array_init(return_value);
-
switch (Z_TYPE_P(zoffset)) {
case IS_NULL:
index = 0;
break;
- case IS_DOUBLE:
- index = (long)Z_DVAL_P(zoffset);
- break;
- case IS_BOOL:
case IS_LONG:
- case IS_RESOURCE:
index = Z_LVAL_P(zoffset);
break;
case IS_STRING:
@@ -2599,9 +2591,12 @@ PHP_FUNCTION(array_column)
break;
default:
php_error_docref(NULL TSRMLS_CC, E_WARNING, "The key should be either a string or an integer");
- return;
+ RETURN_FALSE;
}
+ arr_hash = Z_ARRVAL_P(zarray);
+ array_init(return_value);
+
for (zend_hash_internal_pointer_reset_ex(arr_hash, &pointer);
zend_hash_get_current_data_ex(arr_hash, (void**)&data, &pointer) == SUCCESS;
zend_hash_move_forward_ex(arr_hash, &pointer)) {