1
0
mirror of https://github.com/php/php-src.git synced 2026-04-13 02:52:48 +02:00
Files
archived-php-src/ext
Zeev Suraski f8bbafd604 ntroduce infrastructure for supplying information about arguments,
including:

- Whether or not to pass by ref (replaces the old arg_types, with arg_info)
- Argument name (for future use, maybe introspection)
- Class/Interface name (for type hints)
- If a class/interface name is available, whether to allow a null instance

Both user and builtin functions share the same data structures.

To declare a builtin function that expects its first arg to be an instance
of class 'Person', its second argument as a regular arg, and its third by
reference, use:

ZEND_BEGIN_ARG_INFO(my_func_arg_info, 0)
    ZEND_ARG_OBJ_INFO(0, someone, Person, 1)
    ZEND_ARG_PASS_INFO(0)
    ZEND_ARG_PASS_INFO(1)
ZEND_END_ARG_INFO();

and use my_func_arg_info as the arg_info parameter to the ZEND_FE() family
of macros.

The first arg to each ZEND_ARG_*() macro is whether or not to pass by ref.

The boolean arg to ZEND_BEGIN_ARG_INFO() tells the engine whether to treat
the arguments for which there's no explicit information as pass by reference
or not.
The boolean argument to ZEND_ARG_OBJ_INFO() (4th arg) is whether or not to allownull values.
2003-08-03 17:40:44 +00:00
..
2003-06-12 12:21:33 +00:00
2003-05-17 14:29:31 +00:00
MFB
2003-06-26 18:15:56 +00:00
2003-06-12 12:35:19 +00:00
MFB
2003-07-22 12:36:59 +00:00
2003-06-14 17:14:42 +00:00
WS
2003-07-10 08:34:03 +00:00
2003-07-27 20:21:36 +00:00
2003-06-15 15:29:46 +00:00
2003-07-14 23:23:01 +00:00
2003-06-15 16:04:31 +00:00
2003-07-30 21:56:45 +00:00
2003-06-17 14:13:17 +00:00
2003-07-01 13:31:14 +00:00
2003-07-10 01:40:01 +00:00
2003-06-16 14:03:35 +00:00
2003-06-12 12:00:20 +00:00
2003-07-11 07:48:13 +00:00
2003-06-16 16:36:51 +00:00
2003-07-23 16:54:34 +00:00
2003-07-28 10:23:36 +00:00
2003-06-16 16:36:51 +00:00
2003-07-14 16:11:38 +00:00
2003-06-22 14:33:09 +00:00
2003-06-22 14:33:09 +00:00
2003-06-22 14:33:09 +00:00
MFB
2003-06-29 00:09:41 +00:00
2003-07-14 03:58:31 +00:00
2003-07-19 19:23:34 +00:00
2003-07-27 17:44:20 +00:00
2003-07-19 19:23:34 +00:00
2003-07-19 19:23:34 +00:00
2003-07-19 19:23:34 +00:00
2003-07-22 01:11:07 +00:00
2003-06-15 12:19:57 +00:00
2003-07-23 08:53:23 +00:00
2003-07-20 18:05:03 +00:00
2003-08-02 13:49:12 +00:00
2003-07-19 19:23:34 +00:00
2003-07-19 19:23:34 +00:00
2003-07-19 19:23:34 +00:00
2003-08-01 09:48:06 +00:00
2003-07-19 18:52:49 +00:00
2003-06-28 06:55:47 +00:00
2003-07-19 19:11:01 +00:00
2003-07-19 19:23:34 +00:00