Fix #79653 Unexpected error for ArrayIterator::ksort()

Closes GH-5644
This commit is contained in:
Máté Kocsis 2020-05-30 11:06:49 +02:00
parent 2302b14aab
commit 4a10eb4f53
No known key found for this signature in database
GPG key ID: FD055E41728BF310
3 changed files with 26 additions and 2 deletions

View file

@ -186,7 +186,7 @@ class ArrayIterator implements SeekableIterator, ArrayAccess, Serializable, Coun
/**
* @param int $sort_flags
* @return bool
* @alias ArrayObject::offsetExists
* @alias ArrayObject::ksort
*/
public function ksort($sort_flags = SORT_REGULAR) {}

View file

@ -218,7 +218,7 @@ static const zend_function_entry class_ArrayIterator_methods[] = {
ZEND_MALIAS(ArrayObject, getFlags, getFlags, arginfo_class_ArrayIterator_getFlags, ZEND_ACC_PUBLIC)
ZEND_MALIAS(ArrayObject, setFlags, setFlags, arginfo_class_ArrayIterator_setFlags, ZEND_ACC_PUBLIC)
ZEND_MALIAS(ArrayObject, asort, asort, arginfo_class_ArrayIterator_asort, ZEND_ACC_PUBLIC)
ZEND_MALIAS(ArrayObject, ksort, offsetExists, arginfo_class_ArrayIterator_ksort, ZEND_ACC_PUBLIC)
ZEND_MALIAS(ArrayObject, ksort, ksort, arginfo_class_ArrayIterator_ksort, ZEND_ACC_PUBLIC)
ZEND_MALIAS(ArrayObject, uasort, uasort, arginfo_class_ArrayIterator_uasort, ZEND_ACC_PUBLIC)
ZEND_MALIAS(ArrayObject, uksort, uksort, arginfo_class_ArrayIterator_uksort, ZEND_ACC_PUBLIC)
ZEND_MALIAS(ArrayObject, natsort, natsort, arginfo_class_ArrayIterator_natsort, ZEND_ACC_PUBLIC)

View file

@ -0,0 +1,24 @@
--TEST--
Bug #79653: Unexpected error for ArrayIterator::ksort()
--FILE--
<?php
$array = [3 => 1, 2 => 2, 1 => 3];
$arrIter = new ArrayIterator($array);
var_dump($arrIter->ksort());
var_dump($arrIter);
?>
--EXPECT--
bool(true)
object(ArrayIterator)#1 (1) {
["storage":"ArrayIterator":private]=>
array(3) {
[1]=>
int(3)
[2]=>
int(2)
[3]=>
int(1)
}
}