Assuring Write Safety for Other ParametersPodręcznik PHPPoprzedniRozdział 32. Accepting ArgumentsNastępnyAssuring Write Safety for Other Parameters
You might run into a situation in which you need write access to a
parameter that's retrieved with zend_get_parameters_ex()
but not passed by reference. For this case, you can use the macro
SEPARATE_ZVAL, which does a zval separation on the provided
container. The newly generated zval is detached from internal
data and has only a local scope, meaning that it can be changed or destroyed
without implying global changes in the script context:
zval **parameter;
/* retrieve parameter */
zend_get_parameters_ex(1, ¶meter);
/* at this stage, <parameter> still is connected */
/* to Zend's internal data buffers */
/* make <parameter> write-safe */
SEPARATE_ZVAL(parameter);
/* now we can safely modify <parameter> */
/* without implying global changes */
SEPARATE_ZVAL uses emalloc()
to allocate the new zval container, which means that even if you
don't deallocate this memory yourself, it will be destroyed automatically upon
script termination. However, doing a lot of calls to this macro
without freeing the resulting containers will clutter up your RAM.
Note: As you can easily work around the lack
of write access in the "traditional" API (with
zend_get_parameters() and so on), this API
seems to be obsolete, and is not discussed further in this
chapter.
PoprzedniSpis treściNastępnyDealing with Arguments Passed by ReferencePoczątek rozdziałuCreating Variables
Wyszukiwarka
Podobne podstrony:
zend arguments variablezend arguments by referencezend arguments retrievalzend argumentszend arguments deprecated retrievalzend arguments accessELECTRICAL SAFETYDoD Joint Services Weapon Safety Review Processfunction printer writenazwy argumentowwriteRoad safety vademecum (raport)function zend versionfunctions argumentsfunction zend logo guidwięcej podobnych podstron