A set of macros was introduced into Zend's API that simplify access to zval containers (see Table 43-1).
Table 43-1. 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 |