]> granicus.if.org Git - php/commitdiff
Fix #79653 Unexpected error for ArrayIterator::ksort()
authorMáté Kocsis <kocsismate@woohoolabs.com>
Sat, 30 May 2020 09:06:49 +0000 (11:06 +0200)
committerMáté Kocsis <kocsismate@woohoolabs.com>
Sat, 30 May 2020 14:59:49 +0000 (16:59 +0200)
Closes GH-5644

ext/spl/spl_array.stub.php
ext/spl/spl_array_arginfo.h
ext/spl/tests/arrayIterator_ksort_basic1.phpt [new file with mode: 0644]

index 41cc787b169b3ebb303c27b7000de18f110458fc..7b1ae02afc1c9412235caab642d5822ef46552d7 100755 (executable)
@@ -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) {}
 
index ac69fd70e9336530df5638714c383f305661fdc4..11aa7dfc8349011c0c2b81603fec7661af0418ea 100644 (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)
diff --git a/ext/spl/tests/arrayIterator_ksort_basic1.phpt b/ext/spl/tests/arrayIterator_ksort_basic1.phpt
new file mode 100644 (file)
index 0000000..642827a
--- /dev/null
@@ -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)
+  }
+}