diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2018-01-12 18:30:22 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2018-01-12 18:30:22 +0100 |
commit | 8c73fc8027a7293e81c0b2e8dc2674fe34f1eb59 (patch) | |
tree | 4a168e5b13689a4738134572c6c4d1347b179fea | |
parent | f8c889760cbbe1fa30159b571ab85cf726ba81c5 (diff) | |
download | php-git-8c73fc8027a7293e81c0b2e8dc2674fe34f1eb59.tar.gz |
Fixed bug #75653
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | ext/standard/array.c | 2 | ||||
-rw-r--r-- | ext/standard/tests/array/bug75653.phpt | 20 |
3 files changed, 22 insertions, 1 deletions
@@ -51,6 +51,7 @@ PHP NEWS - Standard: . Fixed bug #75781 (substr_count incorrect result). (Laruence) + . Fixed bug #75653 (array_values don't work on empty array). (Nikita) - Zip: . Display headers (buildtime) and library (runtime) versions in phpinfo diff --git a/ext/standard/array.c b/ext/standard/array.c index 3a55333a76..91ffe08f7d 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -4028,7 +4028,7 @@ PHP_FUNCTION(array_values) /* Return empty input as is */ arrlen = zend_hash_num_elements(arrval); - if (!arrlen) { + if (!arrlen && arrval->nNextFreeElement == arrlen) { RETURN_ZVAL(input, 1, 0); } diff --git a/ext/standard/tests/array/bug75653.phpt b/ext/standard/tests/array/bug75653.phpt new file mode 100644 index 0000000000..d11c1e0c75 --- /dev/null +++ b/ext/standard/tests/array/bug75653.phpt @@ -0,0 +1,20 @@ +--TEST-- +Bug #75653: array_values don't work on empty array +--FILE-- +<?php + +$array[] = 'data1'; +unset($array[0]); +$array = array_values($array); +$array[] = 'data2'; +$array[] = 'data3'; +var_dump($array); + +?> +--EXPECT-- +array(2) { + [0]=> + string(5) "data2" + [1]=> + string(5) "data3" +} |