<?php
-/* ext/spl/php_spl.c */
-
function class_implements($what, bool $autoload = true): array|false {}
function class_parents($instance, bool $autoload = true): array|false {}
function spl_object_id(object $obj): int {}
-/* ext/spl/spl_iterators.c */
function iterator_apply(Traversable $iterator, callable $function, ?array $args = null): int {}
function iterator_count(Traversable $iterator): int {}
#include "zend_exceptions.h"
#include "php_spl.h"
+#include "spl_array_arginfo.h"
#include "spl_functions.h"
#include "spl_engine.h"
#include "spl_iterators.h"
zval *object = ZEND_THIS;
spl_array_object *intern = Z_SPLARRAY_P(object);
+ if (zend_parse_parameters_none() == FAILURE) {
+ RETURN_THROWS();
+ }
+
RETURN_ARR(zend_array_dup(spl_array_get_hash_table(intern)));
} /* }}} */
return; /* nothing to do */
}
- if (zend_parse_parameters(ZEND_NUM_ARGS(), "z|lC", &array, &ar_flags, &ce_get_iterator) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "|zlC", &array, &ar_flags, &ce_get_iterator) == FAILURE) {
RETURN_THROWS();
}
return; /* nothing to do */
}
- if (zend_parse_parameters(ZEND_NUM_ARGS(), "z|l", &array, &ar_flags) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "|zl", &array, &ar_flags) == FAILURE) {
RETURN_THROWS();
}
smart_str buf = {0};
if (zend_parse_parameters_none() == FAILURE) {
- return;
+ RETURN_THROWS();
}
PHP_VAR_SERIALIZE_INIT(var_hash);
/* done */
PHP_VAR_SERIALIZE_DESTROY(var_hash);
- if (buf.s) {
- RETURN_NEW_STR(buf.s);
- }
-
- RETURN_NULL();
+ RETURN_NEW_STR(buf.s);
} /* }}} */
/* {{{ proto void ArrayObject::unserialize(string serialized)
}
/* }}} */
-/* {{{ arginfo and function table */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_array___construct, 0, 0, 0)
- ZEND_ARG_INFO(0, input)
- ZEND_ARG_INFO(0, flags)
- ZEND_ARG_INFO(0, iterator_class)
-ZEND_END_ARG_INFO()
-
-/* ArrayIterator::__construct and ArrayObject::__construct have different signatures */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_array_iterator___construct, 0, 0, 0)
- ZEND_ARG_INFO(0, array)
- ZEND_ARG_INFO(0, flags)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_array_offsetGet, 0, 0, 1)
- ZEND_ARG_INFO(0, index)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_array_offsetSet, 0, 0, 2)
- ZEND_ARG_INFO(0, index)
- ZEND_ARG_INFO(0, newval)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_array_append, 0)
- ZEND_ARG_INFO(0, value)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_array_seek, 0)
- ZEND_ARG_INFO(0, position)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_array_exchangeArray, 0)
- ZEND_ARG_INFO(0, input)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_array_setFlags, 0)
- ZEND_ARG_INFO(0, flags)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_array_setIteratorClass, 0)
- ZEND_ARG_INFO(0, iteratorClass)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_array_uXsort, 0)
- ZEND_ARG_INFO(0, cmp_function)
-ZEND_END_ARG_INFO();
-
-ZEND_BEGIN_ARG_INFO(arginfo_array_unserialize, 0)
- ZEND_ARG_INFO(0, serialized)
-ZEND_END_ARG_INFO();
-
-ZEND_BEGIN_ARG_INFO(arginfo_array_void, 0)
-ZEND_END_ARG_INFO()
-
static const zend_function_entry spl_funcs_ArrayObject[] = {
- SPL_ME(Array, __construct, arginfo_array___construct, ZEND_ACC_PUBLIC)
- SPL_ME(Array, offsetExists, arginfo_array_offsetGet, ZEND_ACC_PUBLIC)
- SPL_ME(Array, offsetGet, arginfo_array_offsetGet, ZEND_ACC_PUBLIC)
- SPL_ME(Array, offsetSet, arginfo_array_offsetSet, ZEND_ACC_PUBLIC)
- SPL_ME(Array, offsetUnset, arginfo_array_offsetGet, ZEND_ACC_PUBLIC)
- SPL_ME(Array, append, arginfo_array_append, ZEND_ACC_PUBLIC)
- SPL_ME(Array, getArrayCopy, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, count, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, getFlags, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, setFlags, arginfo_array_setFlags, ZEND_ACC_PUBLIC)
- SPL_ME(Array, asort, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, ksort, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, uasort, arginfo_array_uXsort, ZEND_ACC_PUBLIC)
- SPL_ME(Array, uksort, arginfo_array_uXsort, ZEND_ACC_PUBLIC)
- SPL_ME(Array, natsort, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, natcasesort, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, unserialize, arginfo_array_unserialize, ZEND_ACC_PUBLIC)
- SPL_ME(Array, serialize, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, __unserialize, arginfo_array_unserialize, ZEND_ACC_PUBLIC)
- SPL_ME(Array, __serialize, arginfo_array_void, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, __construct, arginfo_class_ArrayObject___construct, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, offsetExists, arginfo_class_ArrayObject_offsetExists, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, offsetGet, arginfo_class_ArrayObject_offsetGet, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, offsetSet, arginfo_class_ArrayObject_offsetSet, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, offsetUnset, arginfo_class_ArrayObject_offsetUnset, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, append, arginfo_class_ArrayObject_append, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, getArrayCopy, arginfo_class_ArrayObject_getArrayCopy, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, count, arginfo_class_ArrayObject_count, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, getFlags, arginfo_class_ArrayObject_getFlags, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, setFlags, arginfo_class_ArrayObject_setFlags, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, asort, arginfo_class_ArrayObject_asort, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, ksort, arginfo_class_ArrayObject_ksort, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, uasort, arginfo_class_ArrayObject_uasort, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, uksort, arginfo_class_ArrayObject_uksort, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, natsort, arginfo_class_ArrayObject_natsort, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, natcasesort, arginfo_class_ArrayObject_natcasesort, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, unserialize, arginfo_class_ArrayObject_unserialize, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, serialize, arginfo_class_ArrayObject_serialize, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, __unserialize, arginfo_class_ArrayObject___unserialize, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, __serialize, arginfo_class_ArrayObject___serialize, ZEND_ACC_PUBLIC)
/* ArrayObject specific */
- SPL_ME(Array, getIterator, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, exchangeArray, arginfo_array_exchangeArray, ZEND_ACC_PUBLIC)
- SPL_ME(Array, setIteratorClass, arginfo_array_setIteratorClass, ZEND_ACC_PUBLIC)
- SPL_ME(Array, getIteratorClass, arginfo_array_void, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, getIterator, arginfo_class_ArrayObject_getIterator, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, exchangeArray, arginfo_class_ArrayObject_exchangeArray, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, setIteratorClass, arginfo_class_ArrayObject_setIteratorClass, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, getIteratorClass, arginfo_class_ArrayObject_getIteratorClass, ZEND_ACC_PUBLIC)
PHP_FE_END
};
static const zend_function_entry spl_funcs_ArrayIterator[] = {
- SPL_ME(ArrayIterator, __construct, arginfo_array_iterator___construct, ZEND_ACC_PUBLIC)
- SPL_ME(Array, offsetExists, arginfo_array_offsetGet, ZEND_ACC_PUBLIC)
- SPL_ME(Array, offsetGet, arginfo_array_offsetGet, ZEND_ACC_PUBLIC)
- SPL_ME(Array, offsetSet, arginfo_array_offsetSet, ZEND_ACC_PUBLIC)
- SPL_ME(Array, offsetUnset, arginfo_array_offsetGet, ZEND_ACC_PUBLIC)
- SPL_ME(Array, append, arginfo_array_append, ZEND_ACC_PUBLIC)
- SPL_ME(Array, getArrayCopy, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, count, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, getFlags, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, setFlags, arginfo_array_setFlags, ZEND_ACC_PUBLIC)
- SPL_ME(Array, asort, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, ksort, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, uasort, arginfo_array_uXsort, ZEND_ACC_PUBLIC)
- SPL_ME(Array, uksort, arginfo_array_uXsort, ZEND_ACC_PUBLIC)
- SPL_ME(Array, natsort, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, natcasesort, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, unserialize, arginfo_array_unserialize, ZEND_ACC_PUBLIC)
- SPL_ME(Array, serialize, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, __unserialize, arginfo_array_unserialize, ZEND_ACC_PUBLIC)
- SPL_ME(Array, __serialize, arginfo_array_void, ZEND_ACC_PUBLIC)
+ SPL_ME(ArrayIterator, __construct, arginfo_class_ArrayIterator___construct, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, offsetExists, arginfo_class_ArrayIterator_offsetExists, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, offsetGet, arginfo_class_ArrayIterator_offsetGet, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, offsetSet, arginfo_class_ArrayIterator_offsetSet, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, offsetUnset, arginfo_class_ArrayIterator_offsetUnset, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, append, arginfo_class_ArrayIterator_append, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, getArrayCopy, arginfo_class_ArrayIterator_getArrayCopy, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, count, arginfo_class_ArrayIterator_count, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, getFlags, arginfo_class_ArrayIterator_getFlags, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, setFlags, arginfo_class_ArrayIterator_setFlags, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, asort, arginfo_class_ArrayIterator_asort, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, ksort, arginfo_class_ArrayIterator_ksort, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, uasort, arginfo_class_ArrayIterator_uasort, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, uksort, arginfo_class_ArrayIterator_uksort, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, natsort, arginfo_class_ArrayIterator_natsort, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, natcasesort, arginfo_class_ArrayIterator_natcasesort, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, unserialize, arginfo_class_ArrayIterator_unserialize, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, serialize, arginfo_class_ArrayIterator_serialize, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, __unserialize, arginfo_class_ArrayIterator___unserialize, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, __serialize, arginfo_class_ArrayIterator___serialize, ZEND_ACC_PUBLIC)
/* ArrayIterator specific */
- SPL_ME(Array, rewind, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, current, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, key, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, next, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, valid, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, seek, arginfo_array_seek, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, rewind, arginfo_class_ArrayIterator_rewind, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, current, arginfo_class_ArrayIterator_current, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, key, arginfo_class_ArrayIterator_key, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, next, arginfo_class_ArrayIterator_next, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, valid, arginfo_class_ArrayIterator_valid, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, seek, arginfo_class_ArrayIterator_seek, ZEND_ACC_PUBLIC)
PHP_FE_END
};
static const zend_function_entry spl_funcs_RecursiveArrayIterator[] = {
- SPL_ME(Array, hasChildren, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, getChildren, arginfo_array_void, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, hasChildren, arginfo_class_RecursiveArrayIterator_hasChildren, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, getChildren, arginfo_class_RecursiveArrayIterator_getChildren, ZEND_ACC_PUBLIC)
PHP_FE_END
};
/* }}} */
--- /dev/null
+<?php
+
+class ArrayObject implements IteratorAggregate, ArrayAccess, Serializable, Countable
+{
+ /** @param array|object $input */
+ public function __construct($input = [], int $flags = 0, string $iterator_class = ArrayIterator::class) {}
+
+ /**
+ * @param mixed $index
+ * @return bool
+ */
+ public function offsetExists($index) {}
+
+ /**
+ * @param mixed $index
+ * @return mixed
+ */
+ public function offsetGet($index) {}
+
+ /**
+ * @param mixed $index
+ * @param mixed $value
+ * @return void
+ */
+ public function offsetSet($index, $value) {}
+
+ /**
+ * @param mixed $index
+ * @return void
+ */
+ public function offsetUnset($index) {}
+
+ /**
+ * @param mixed $value
+ * @return void
+ */
+ public function append($value) {}
+
+ /** @return array */
+ public function getArrayCopy() {}
+
+ /** @return int */
+ public function count() {}
+
+ /** @return int */
+ public function getFlags() {}
+
+ /** @return void */
+ public function setFlags(int $flags) {}
+
+ /**
+ * @param int $sort_flags
+ * @return bool
+ */
+ public function asort($sort_flags = SORT_REGULAR) {}
+
+ /**
+ * @param int $sort_flags
+ * @return bool
+ */
+ public function ksort($sort_flags = SORT_REGULAR) {}
+
+ /**
+ * @param callback $cmp_function
+ * @return bool
+ */
+ public function uasort($cmp_function) {}
+
+ /**
+ * @param callback $cmp_function
+ * @return bool
+ */
+ public function uksort($cmp_function) {}
+
+ /** @return bool */
+ public function natsort() {}
+
+ /** @return bool */
+ public function natcasesort() {}
+
+ /** @return void */
+ public function unserialize(string $serialized) {}
+
+ /** @return string */
+ public function serialize() {}
+
+ /** @return array */
+ public function __serialize() {}
+
+ /** @return void */
+ public function __unserialize(array $data) {}
+
+ /** @return Iterator */
+ public function getIterator() {}
+
+ /**
+ * @param array|object $input
+ * @return array|null
+ */
+ public function exchangeArray($input) {}
+
+ /** @return void */
+ public function setIteratorClass(string $iteratorClass) {}
+
+ /** @return string */
+ public function getIteratorClass() {}
+}
+
+class ArrayIterator implements SeekableIterator, ArrayAccess, Serializable, Countable
+{
+ /** @param array|object $array */
+ public function __construct($array = [], int $flags = 0) {}
+
+ /**
+ * @param mixed $index
+ * @return bool
+ */
+ public function offsetExists($index) {}
+
+ /**
+ * @param mixed $index
+ * @return mixed
+ */
+ public function offsetGet($index) {}
+
+ /**
+ * @param mixed $index
+ * @param mixed $value
+ * @return void
+ */
+ public function offsetSet($index, $value) {}
+
+ /**
+ * @param mixed $index
+ * @return void
+ */
+ public function offsetUnset($index) {}
+
+ /**
+ * @param mixed $value
+ * @return void
+ */
+ public function append($value) {}
+
+ /** @return array */
+ public function getArrayCopy() {}
+
+ /** @return int */
+ public function count() {}
+
+ /** @return int */
+ public function getFlags() {}
+
+ /** @return void */
+ public function setFlags(int $flags) {}
+
+ /**
+ * @param int $sort_flags
+ * @return bool
+ */
+ public function asort($sort_flags = SORT_REGULAR) {}
+
+ /**
+ * @param int $sort_flags
+ * @return bool
+ */
+ public function ksort($sort_flags = SORT_REGULAR) {}
+
+ /**
+ * @param callback $cmp_function
+ * @return bool
+ */
+ public function uasort($cmp_function) {}
+
+ /**
+ * @param callback $cmp_function
+ * @return bool
+ */
+ public function uksort($cmp_function) {}
+
+ /** @return bool */
+ public function natsort() {}
+
+ /** @return bool */
+ public function natcasesort() {}
+
+ /** @return void */
+ public function unserialize(string $serialized) {}
+
+ /** @return string */
+ public function serialize() {}
+
+ /** @return array */
+ public function __serialize() {}
+
+ /** @return void */
+ public function __unserialize(array $data) {}
+
+ /** @return void */
+ public function rewind() {}
+
+ /** @return mixed */
+ public function current() {}
+
+ /** @return mixed */
+ public function key() {}
+
+ /** @return void */
+ public function next() {}
+
+ /** @return bool */
+ public function valid() {}
+
+ /** @return void */
+ public function seek(int $position) {}
+}
+
+class RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator
+{
+ /** @return bool */
+ public function hasChildren() {}
+
+ /** @return RecursiveArrayIterator|null */
+ public function getChildren() {}
+}
--- /dev/null
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject___construct, 0, 0, 0)
+ ZEND_ARG_INFO(0, input)
+ ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, iterator_class, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject_offsetExists, 0, 0, 1)
+ ZEND_ARG_INFO(0, index)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_ArrayObject_offsetGet arginfo_class_ArrayObject_offsetExists
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject_offsetSet, 0, 0, 2)
+ ZEND_ARG_INFO(0, index)
+ ZEND_ARG_INFO(0, value)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_ArrayObject_offsetUnset arginfo_class_ArrayObject_offsetExists
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject_append, 0, 0, 1)
+ ZEND_ARG_INFO(0, value)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject_getArrayCopy, 0, 0, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_ArrayObject_count arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayObject_getFlags arginfo_class_ArrayObject_getArrayCopy
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject_setFlags, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject_asort, 0, 0, 0)
+ ZEND_ARG_INFO(0, sort_flags)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_ArrayObject_ksort arginfo_class_ArrayObject_asort
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject_uasort, 0, 0, 1)
+ ZEND_ARG_INFO(0, cmp_function)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_ArrayObject_uksort arginfo_class_ArrayObject_uasort
+
+#define arginfo_class_ArrayObject_natsort arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayObject_natcasesort arginfo_class_ArrayObject_getArrayCopy
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject_unserialize, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, serialized, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_ArrayObject_serialize arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayObject___serialize arginfo_class_ArrayObject_getArrayCopy
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject___unserialize, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, data, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_ArrayObject_getIterator arginfo_class_ArrayObject_getArrayCopy
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject_exchangeArray, 0, 0, 1)
+ ZEND_ARG_INFO(0, input)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject_setIteratorClass, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, iteratorClass, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_ArrayObject_getIteratorClass arginfo_class_ArrayObject_getArrayCopy
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayIterator___construct, 0, 0, 0)
+ ZEND_ARG_INFO(0, array)
+ ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_ArrayIterator_offsetExists arginfo_class_ArrayObject_offsetExists
+
+#define arginfo_class_ArrayIterator_offsetGet arginfo_class_ArrayObject_offsetExists
+
+#define arginfo_class_ArrayIterator_offsetSet arginfo_class_ArrayObject_offsetSet
+
+#define arginfo_class_ArrayIterator_offsetUnset arginfo_class_ArrayObject_offsetExists
+
+#define arginfo_class_ArrayIterator_append arginfo_class_ArrayObject_append
+
+#define arginfo_class_ArrayIterator_getArrayCopy arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator_count arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator_getFlags arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator_setFlags arginfo_class_ArrayObject_setFlags
+
+#define arginfo_class_ArrayIterator_asort arginfo_class_ArrayObject_asort
+
+#define arginfo_class_ArrayIterator_ksort arginfo_class_ArrayObject_asort
+
+#define arginfo_class_ArrayIterator_uasort arginfo_class_ArrayObject_uasort
+
+#define arginfo_class_ArrayIterator_uksort arginfo_class_ArrayObject_uasort
+
+#define arginfo_class_ArrayIterator_natsort arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator_natcasesort arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator_unserialize arginfo_class_ArrayObject_unserialize
+
+#define arginfo_class_ArrayIterator_serialize arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator___serialize arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator___unserialize arginfo_class_ArrayObject___unserialize
+
+#define arginfo_class_ArrayIterator_rewind arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator_current arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator_key arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator_next arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator_valid arginfo_class_ArrayObject_getArrayCopy
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayIterator_seek, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, position, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_RecursiveArrayIterator_hasChildren arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_RecursiveArrayIterator_getChildren arginfo_class_ArrayObject_getArrayCopy
#include "zend_exceptions.h"
#include "php_spl.h"
+#include "spl_fixedarray_arginfo.h"
#include "spl_functions.h"
#include "spl_engine.h"
#include "spl_fixedarray.h"
}
/* }}} */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_splfixedarray_construct, 0, 0, 0)
- ZEND_ARG_INFO(0, size)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_fixedarray_offsetGet, 0, 0, 1)
- ZEND_ARG_INFO(0, index)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_fixedarray_offsetSet, 0, 0, 2)
- ZEND_ARG_INFO(0, index)
- ZEND_ARG_INFO(0, newval)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_fixedarray_setSize, 0)
- ZEND_ARG_INFO(0, value)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_fixedarray_fromArray, 0, 0, 1)
- ZEND_ARG_INFO(0, array)
- ZEND_ARG_INFO(0, save_indexes)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_splfixedarray_void, 0)
-ZEND_END_ARG_INFO()
-
static const zend_function_entry spl_funcs_SplFixedArray[] = { /* {{{ */
- SPL_ME(SplFixedArray, __construct, arginfo_splfixedarray_construct,ZEND_ACC_PUBLIC)
- SPL_ME(SplFixedArray, __wakeup, arginfo_splfixedarray_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFixedArray, count, arginfo_splfixedarray_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFixedArray, toArray, arginfo_splfixedarray_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFixedArray, fromArray, arginfo_fixedarray_fromArray, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
- SPL_ME(SplFixedArray, getSize, arginfo_splfixedarray_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFixedArray, setSize, arginfo_fixedarray_setSize, ZEND_ACC_PUBLIC)
- SPL_ME(SplFixedArray, offsetExists, arginfo_fixedarray_offsetGet, ZEND_ACC_PUBLIC)
- SPL_ME(SplFixedArray, offsetGet, arginfo_fixedarray_offsetGet, ZEND_ACC_PUBLIC)
- SPL_ME(SplFixedArray, offsetSet, arginfo_fixedarray_offsetSet, ZEND_ACC_PUBLIC)
- SPL_ME(SplFixedArray, offsetUnset, arginfo_fixedarray_offsetGet, ZEND_ACC_PUBLIC)
- SPL_ME(SplFixedArray, rewind, arginfo_splfixedarray_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFixedArray, current, arginfo_splfixedarray_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFixedArray, key, arginfo_splfixedarray_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFixedArray, next, arginfo_splfixedarray_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFixedArray, valid, arginfo_splfixedarray_void, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFixedArray, __construct, arginfo_class_SplFixedArray___construct, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFixedArray, __wakeup, arginfo_class_SplFixedArray___wakeup, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFixedArray, count, arginfo_class_SplFixedArray_count, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFixedArray, toArray, arginfo_class_SplFixedArray_toArray, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFixedArray, fromArray, arginfo_class_SplFixedArray_fromArray, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
+ SPL_ME(SplFixedArray, getSize, arginfo_class_SplFixedArray_getSize, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFixedArray, setSize, arginfo_class_SplFixedArray_setSize, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFixedArray, offsetExists, arginfo_class_SplFixedArray_offsetExists, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFixedArray, offsetGet, arginfo_class_SplFixedArray_offsetGet, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFixedArray, offsetSet, arginfo_class_SplFixedArray_offsetSet, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFixedArray, offsetUnset, arginfo_class_SplFixedArray_offsetUnset, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFixedArray, rewind, arginfo_class_SplFixedArray_rewind, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFixedArray, current, arginfo_class_SplFixedArray_current, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFixedArray, key, arginfo_class_SplFixedArray_key, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFixedArray, next, arginfo_class_SplFixedArray_next, ZEND_ACC_PUBLIC)
+ SPL_ME(SplFixedArray, valid, arginfo_class_SplFixedArray_valid, ZEND_ACC_PUBLIC)
PHP_FE_END
};
/* }}} */
--- /dev/null
+<?php
+
+class SplFixedArray implements Iterator, ArrayAccess, Countable
+{
+ public function __construct(int $size = 0) {}
+
+ /** @return void */
+ public function __wakeup() {}
+
+ /** @return int */
+ public function count() {}
+
+ /** @return array */
+ public function toArray() {}
+
+ /** @return SplFixedArray */
+ public static function fromArray(array $array, bool $save_indexes = true) {}
+
+ /** @return int */
+ public function getSize() {}
+
+ /** @return bool */
+ public function setSize(int $size) {}
+
+ /**
+ * @param mixed $index
+ * @return bool
+ */
+ public function offsetExists($index) {}
+
+ /**
+ * @param mixed $index
+ * @return mixed
+ */
+ public function offsetGet($index) {}
+
+ /**
+ * @param mixed $index
+ * @param mixed $value
+ * @return void
+ */
+ public function offsetSet($index, $value) {}
+
+ /**
+ * @param int $index
+ * @return void
+ */
+ public function offsetUnset($index) {}
+
+ /** @return void */
+ public function rewind() {}
+
+ /** @return mixed */
+ public function current() {}
+
+ /** @return int */
+ public function key() {}
+
+ /** @return void */
+ public function next() {}
+
+ /** @return bool */
+ public function valid() {}
+}
--- /dev/null
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFixedArray___construct, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO(0, size, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFixedArray___wakeup, 0, 0, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplFixedArray_count arginfo_class_SplFixedArray___wakeup
+
+#define arginfo_class_SplFixedArray_toArray arginfo_class_SplFixedArray___wakeup
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFixedArray_fromArray, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, array, IS_ARRAY, 0)
+ ZEND_ARG_TYPE_INFO(0, save_indexes, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplFixedArray_getSize arginfo_class_SplFixedArray___wakeup
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFixedArray_setSize, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, size, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFixedArray_offsetExists, 0, 0, 1)
+ ZEND_ARG_INFO(0, index)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplFixedArray_offsetGet arginfo_class_SplFixedArray_offsetExists
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFixedArray_offsetSet, 0, 0, 2)
+ ZEND_ARG_INFO(0, index)
+ ZEND_ARG_INFO(0, value)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplFixedArray_offsetUnset arginfo_class_SplFixedArray_offsetExists
+
+#define arginfo_class_SplFixedArray_rewind arginfo_class_SplFixedArray___wakeup
+
+#define arginfo_class_SplFixedArray_current arginfo_class_SplFixedArray___wakeup
+
+#define arginfo_class_SplFixedArray_key arginfo_class_SplFixedArray___wakeup
+
+#define arginfo_class_SplFixedArray_next arginfo_class_SplFixedArray___wakeup
+
+#define arginfo_class_SplFixedArray_valid arginfo_class_SplFixedArray___wakeup
- Parameters [2] {
Parameter #0 [ <optional> $array ]
- Parameter #1 [ <optional> $flags ]
+ Parameter #1 [ <optional> int $flags ]
}
}