xref: /php-src/ext/spl/spl_array.h (revision b73f139c)
1 /*
2    +----------------------------------------------------------------------+
3    | Copyright (c) The PHP Group                                          |
4    +----------------------------------------------------------------------+
5    | This source file is subject to version 3.01 of the PHP license,      |
6    | that is bundled with this package in the file LICENSE, and is        |
7    | available through the world-wide-web at the following url:           |
8    | https://www.php.net/license/3_01.txt                                 |
9    | If you did not receive a copy of the PHP license and are unable to   |
10    | obtain it through the world-wide-web, please send a note to          |
11    | license@php.net so we can mail you a copy immediately.               |
12    +----------------------------------------------------------------------+
13    | Authors: Marcus Boerger <helly@php.net>                              |
14    +----------------------------------------------------------------------+
15  */
16 
17 #ifndef SPL_ARRAY_H
18 #define SPL_ARRAY_H
19 
20 #include "php.h"
21 #include "php_spl.h"
22 #include "spl_iterators.h"
23 
24 #define SPL_ARRAY_STD_PROP_LIST      0x00000001
25 #define SPL_ARRAY_ARRAY_AS_PROPS     0x00000002
26 #define SPL_ARRAY_CHILD_ARRAYS_ONLY  0x00000004
27 #define SPL_ARRAY_IS_SELF            0x01000000
28 #define SPL_ARRAY_USE_OTHER          0x02000000
29 #define SPL_ARRAY_INT_MASK           0xFFFF0000
30 #define SPL_ARRAY_CLONE_MASK         0x0100FFFF
31 
32 #define SPL_ARRAY_METHOD_NO_ARG				0
33 #define SPL_ARRAY_METHOD_CALLBACK_ARG  		1
34 #define SPL_ARRAY_METHOD_SORT_FLAGS_ARG 	2
35 
36 extern PHPAPI zend_class_entry *spl_ce_ArrayObject;
37 extern PHPAPI zend_class_entry *spl_ce_ArrayIterator;
38 extern PHPAPI zend_class_entry *spl_ce_RecursiveArrayIterator;
39 
40 PHP_MINIT_FUNCTION(spl_array);
41 
42 extern void spl_array_iterator_append(zval *object, zval *append_value);
43 extern void spl_array_iterator_key(zval *object, zval *return_value);
44 
45 #endif /* SPL_ARRAY_H */
46