diff --git a/functions/array.xml b/functions/array.xml index 4a4f0ceeba..c391fa43e0 100644 --- a/functions/array.xml +++ b/functions/array.xml @@ -1,5 +1,5 @@ - + Array Functions Arrays @@ -2693,7 +2693,7 @@ while (list ($key, $val) = each ($HTTP_POST_VARS)) { extract - Import variables into the symbol table from an array + Import variables into the current symbol table from an array @@ -2712,7 +2712,7 @@ while (list ($key, $val) = each ($HTTP_POST_VARS)) { This function is used to import variables from an array into the - current symbol table. It takes associative array + current symbol table. It takes an associative array var_array and treats keys as variable names and values as variable values. For each key/value pair it will create a variable in the current symbol table, subject to @@ -2725,8 +2725,14 @@ while (list ($key, $val) = each ($HTTP_POST_VARS)) { variables extracted. + + + EXTR_IF_EXISTS and EXTR_PREFIX_IF_EXISTS was introduced in version 4.2.0. + variables extracted. + + - extract checks each key to see whether if + extract checks each key to see whether it constitutes a valid variable name and also for collisions with existing variables in the symbol table. The way invalid/numeric keys and collisions are treated is determined by @@ -2773,11 +2779,33 @@ while (list ($key, $val) = each ($HTTP_POST_VARS)) { Only prefix invalid/numeric variable names with - prefix. This flag has been added in + prefix. This flag was added in PHP 4.0.5. + + EXTR_IF_EXISTS + + + Only overwrite the variable if it already exists in the + current symbol table, otherwise do nothing. This is useful + for defining a list of valid variables and then extracting + only those variables you have defined out of $_REQUEST, for + example. This flag was added in PHP 4.2.0. + + + + + EXTR_PREFIX_IF_EXISTS + + + Only create prefixed variable names if the non-prefixed version + of the same variable exists in the current symbol table. This + flag was added in PHP 4.2.0. + + + @@ -2787,16 +2815,16 @@ while (list ($key, $val) = each ($HTTP_POST_VARS)) { Note that prefix is only required if extract_type is EXTR_PREFIX_SAME, - EXTR_PREFIX_ALL, or EXTR_PREFIX_INVALID. If the prefixed result - is not a valid variable name, it is not imported into the symbol - table. + EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID or EXTR_PREFIX_IF_EXISTS. If + the prefixed result is not a valid variable name, it is not + imported into the symbol table. extract returns the number of variables successfully imported into the symbol table. - A possible use for extract is to import into symbol table + A possible use for extract is to import into the symbol table variables contained in an associative array returned by wddx_deserialize. @@ -2836,7 +2864,7 @@ blue, large, sphere, medium specified EXTR_PREFIX_SAME, which resulted in $wddx_size being created. If EXTR_SKIP was specified, then $wddx_size wouldn't even have been created. - EXTR_OVERWRITE would have cause $size to have + EXTR_OVERWRITE would have caused $size to have value "medium", and EXTR_PREFIX_ALL would result in new variables being named $wddx_color, $wddx_size, and @@ -2844,7 +2872,8 @@ blue, large, sphere, medium You must use an associative array, a numerically indexed array - will not produce results. + will not produce results unless you use EXTR_PREFIX_ALL or + EXTR_PREFIX_INVALID. See also compact.