PHP Manual
Prev |  | Next

# Chapter 42. Additional API Macros

Shortly before the release of this book, a new set of macros was introduced into Zend's API that simplify access to `zval` containers (see Table 9.19). However, we chose not to use them in the example sources, as they don't make many accesses to `zval` containers, and the macros would have resulted in source code that was more difficult to read.

Figure 42-1. Table 9.19. New API Macros for Accessing `zval` Containers

Macro | Refers to
`Z_LVAL(zval)` | `(zval).value.lval`
`Z_DVAL(zval)` | `(zval).value.dval`
`Z_STRVAL(zval)` | `(zval).value.str.val`
`Z_STRLEN(zval)` | `(zval).value.str.len`
`Z_ARRVAL(zval)` | `(zval).value.ht`
`Z_LVAL_P(zval)` | `(*zval).value.lval`
`Z_DVAL_P(zval)` | `(*zval).value.dval`
`Z_STRVAL_P(zval_p)` | `(*zval).value.str.val`
`Z_STRLEN_P(zval_p)` | `(*zval).value.str.len`
`Z_ARRVAL_P(zval_p)` | `(*zval).value.ht`
`Z_LVAL_PP(zval_pp)` | `(**zval).value.lval`
`Z_DVAL_PP(zval_pp)` | `(**zval).value.dval`
`Z_STRVAL_PP(zval_pp)` | `(**zval).value.str.val`
`Z_STRLEN_PP(zval_pp)` | `(**zval).value.str.len`
`Z_ARRVAL_PP(zval_pp)` | `(**zval).value.ht`

Prev | Home | Next
Reference: Some Configuration Macros | Up | FAQ: Frequently Asked Questions