-
05月22日
-
【函数功能】
该函数使用数组键名作为变量名,使用数组键值作为变量值来创建一系列变量。
【函数语法】
extract (array &$array, $flags = null, $prefix = null)
【参数说明】
参数 描述 array 必需。规定要使用的数组。 extract_rules 可选。extract() 函数将检查每个键名是否为合法的变量名,同时也检查和符号表中已存在的变量名是否冲突。对不合法和冲突的键名的处理将根据此参数决定。
可能的值:
- EXTR_OVERWRITE - 默认。如果有冲突,则覆盖已有的变量。
- EXTR_SKIP - 如果有冲突,不覆盖已有的变量。
- EXTR_PREFIX_SAME - 如果有冲突,在变量名前加上前缀 prefix。
- EXTR_PREFIX_ALL - 给所有变量名加上前缀 prefix。
- EXTR_PREFIX_INVALID - 仅在不合法或数字变量名前加上前缀 prefix。
- EXTR_IF_EXISTS - 仅在当前符号表中已有同名变量时,覆盖它们的值。其它的都不处理。
- EXTR_PREFIX_IF_EXISTS - 仅在当前符号表中已有同名变量时,建立附加了前缀的变量名,其它的都不处理。
- EXTR_REFS - 将变量作为引用提取。导入的变量仍然引用了数组参数的值。
prefix 可选。请注意 prefix 仅在 extract_type 的值是 EXTR_PREFIX_SAME,EXTR_PREFIX_ALL,EXTR_PREFIX_INVALID 或 EXTR_PREFIX_IF_EXISTS 时需要。如果附加了前缀后的结果不是合法的变量名,将不会导入到符号表中。
前缀和数组键名之间会自动加上一个下划线。
【演示程序】
<?php /** * extract (array &$array, $flags = null, $prefix = null) * **/ $site_name = "llq"; $array = array('site_name'=>'PHP1234','site_url'=>'php1234.cn','ext','明礼馨德','site_auth'=>'明礼馨德'); extract($array); echo $site_name.'<br>'; echo $site_url.'<br>'; echo $ext.'<br>'; echo $明礼馨德.'<br>'; echo $site_auth.'<br>'; $site_name = "llq"; extract($array,EXTR_PREFIX_SAME,'php'); echo $site_name.'<br>'; echo $php_site_name.'<br>'; ?>
【输出结果】
PHP1234 php1234.cn 明礼馨德 llq PHP1234
【特别注意】
返回值: 返回成功导入到符号表中的变量数目。 PHP 版本: 4+ 更新日志: extract_rules 的值 EXTR_REFS 是在 PHP 4.3 中新增的。
extract_rules 的值 EXTR_IF_EXISTS 和 EXTR_PREFIX_IF_EXISTS 是在 PHP 4.2 中新增的。
自 PHP 4.0.5 起,该函数返回成功导入到符号表中的变量数目。
extract_rules 的值 EXTR_PREFIX_INVALID 是在 PHP 4.0.5 中新增的。
自 PHP 4.0.5 起,extract_rules 的值 EXTR_PREFIX_ALL 也包含数字变量。
【原版定义】
/** * Import variables into the current symbol table from an array * @link http://www.php.net/manual/en/function.extract.php * @param array array <p> * Note that prefix is only required if * flags is EXTR_PREFIX_SAME, * 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. Prefixes are automatically separated from * the array key by an underscore character. * </p> * @param flags int[optional] <p> * The way invalid/numeric keys and collisions are treated is determined * by the extraction flags. It can be one of the * following values: * EXTR_OVERWRITE * If there is a collision, overwrite the existing variable. * @param prefix string[optional] 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. * @return int the number of variables successfully imported into the symbol * table. */
转载请注明出处:php1234.cn ,原文地址:http://www.php1234.cn/a/functions/2017/0522/224.html