Parameter Retrieval

int zend_get_parameters(int ht, int param_count, ...); int zend_get_parameters_ex(int param_count, ...); int zend_get_parameters_array(int ht, int param_count, zval **argument_array); int zend_get_parameters_array_ex(int param_count, zval ***argument_array);

Maps the current function call's argument stack into zval* values_ex variants map to an additional level of indirection: zval**. See also: Chapter 7, "Accepting Parameters."

Argument

Purpose

ht

Deprecated. This parameter is always ignored by these methods.

param_count

The number of zval* or zval** containers passed as either individual parameters or vector units.

...

Variable argument list expecting param_count instances of references to the desired data type; that is, zval**, or zval*** for the _ex version.

argument_array

Vector containing sufficient space to store param_count zval* or zval** elements.

int zend_copy_parameters_array(int param_count, zval *argument_array TSRMLS_DC);

Maps the current function call's argument stack into a pre-initialized Array variable suitable for exporting to userspace. Each value's refcount is implicitly increased as a result of being placed in argument_array.

Argument

Purpose

param_count

Number of parameters to copy from the stack to the target array. This value must be equal to or less than the actual number of parameters available.

argument_array

Target zval* to copy parameters into. argument_array must be allocated and initialized as an array (for example, using array_init()) prior to being used in this function).

int ZEND_NUM_ARGS(void);

Returns the number of arguments waiting on the current function call's parameter stack.

int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...); int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, char *type_spec, ...); int zend_parse_method_parameters(int num_args TSRMLS_DC, zval *this_ptr, char *type_spec, ...); int zend_parse_method_parameters_ex(int flags, int num_args TSRMLS_DC, zval *this_ptr, char *type_spec, ...);

Maps the current function call's argument stack into native C data types converting where possible. Provides automatic userspace error reporting on failure.

Arguments

Purpose

num_args

The number of arguments actually waiting on the stack. This should always be populated using the ZEND_NUM_ARGS() macro.

type_spec

Argument type specifier. Arguments processed will be validated against these types and converted if necessary. Refer to Chapter 7 for details on this field.

...

Dereferenced native C data types to be populated with values parsed from the argument stack. See Chapter 7.

flags

A bitmask field currently allowing only one possible valueZEND_PARSE_PARAMS_QUIETwhich suppresses warning and failure messages.

this_ptr

A zval* containing the current object instance such as returned by getThis().

Категории