`

extract()函数使用dedecms中的

阅读更多

标签: extract() it
的函数:extract(),它的主要作用是将数组展开,键名作为变量名,元素值为变量值,可以说为数组的操作提供了另外一个方便的工具,比方说,可以很方便的提取$_POST或者$_GET的元素,对表单提交上来的内容不能不用一一赋值,直接使用下面代码:

form.html


<form action="action.php" method="post">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit">

在action.php中只要使用extract()函数将$_POST全局数据解开:
action.php


<?php
extract($_POST);
//相当于$username = $_POST['username'];
//$password = $_POST['password'];
?>

是不是很方便呢?呵呵,下面是PHP手册里的详细解释:

extract
(PHP 4, PHP 5)

extract — 从数组中将变量导入到当前的符号表


说明
int extract ( array $var_array [, int $extract_type [, string $prefix ]] )

本函数用来将变量从数组中导入到当前的符号表中。接受结合数组 var_array 作为参数并将键名当作变量名,值作为变量的值。对每个键/值对都会在当前的符号表中建立变量,并受到 extract_type 和 prefix 参数的影响。


Note: 自版本 4.0.5 起本函数返回被提取的变量数目。

Note: EXTR_IF_EXISTS 和 EXTR_PREFIX_IF_EXISTS 是版本 4.2.0 中引进的。

Note: EXTR_REFS 是版本 4.3.0 中引进的。

extract() 检查每个键名看是否可以作为一个合法的变量名,同时也检查和符号表中已有的变量名的冲突。对待非法/数字和冲突的键名的方法将根据 extract_type 参数决定。可以是以下值之一:

EXTR_OVERWRITE
如果有冲突,覆盖已有的变量。
EXTR_SKIP
如果有冲突,不覆盖已有的变量。
EXTR_PREFIX_SAME
如果有冲突,在变量名前加上前缀 prefix 。
EXTR_PREFIX_ALL
给所有变量名加上前缀 prefix 。自 PHP 4.0.5 起这也包括了对数字索引的处理。
EXTR_PREFIX_INVALID
仅在非法/数字的变量名前加上前缀 prefix 。本标记是 PHP 4.0.5 新加的。
EXTR_IF_EXISTS
仅在当前符号表中已有同名变量时,覆盖它们的值。其它的都不处理。可以用在已经定义了一组合法的变量,然后要从一个数组例如 $_REQUEST 中提取值覆盖这些变量的场合。本标记是 PHP 4.2.0 新加的。
EXTR_PREFIX_IF_EXISTS
仅在当前符号表中已有同名变量时,建立附加了前缀的变量名,其它的都不处理。本标记是 PHP 4.2.0 新加的。
EXTR_REFS
将变量作为引用提取。这有力地表明了导入的变量仍然引用了 var_array 参数的值。可以单独使用这个标志或者在 extract_type 中用 OR 与其它任何标志结合使用。本标记是 PHP 4.3.0 新加的。
如果没有指定 extract_type ,则被假定为 EXTR_OVERWRITE。

注意 prefix 仅在 extract_type 的值是 EXTR_PREFIX_SAME,EXTR_PREFIX_ALL,EXTR_PREFIX_INVALID 或 EXTR_PREFIX_IF_EXISTS 时需要。如果附加了前缀后的结果不是合法的变量名,将不会导入到符号表中。前缀和数组键名之间会自动加上一个下划线。

extract() 返回成功导入到符号表中的变量数目。

Warning

不要对不能信任的数据使用 extract(),例如用户的输入($_GET,…)。如果这样做,举例说,要临时运行依赖于 register_globals 的老代码,要确保使用不会覆盖的 extract_type 值,例如 EXTR_SKIP,并且要留意应该按照 php.ini 中由 variables_order 定义的顺序来提取。

extract() 的一种可能用法是将 wddx_deserialize() 返回的结合数组中的内容导入到符号表变量中去。

Example#1 extract() 例子

<?php

$size = “large”;
$var_array = array(”color” => “blue”,
“size”  => “medium”,
“shape” => “sphere”);
extract($var_array, EXTR_PREFIX_SAME, “wddx”);
echo “$color, $size, $shape, $wddx_size\n”;
?>

上例将输出:

blue, large, sphere, medium

$size 没有被覆盖,因为指定了 EXTR_PREFIX_SAME,这使得 $wddx_size 被建立。如果指定了 EXTR_SKIP,则 $wddx_size 也不会被建立。EXTR_OVERWRITE 将使 $size 的值为“medium”,EXTR_PREFIX_ALL 将建立新变量 $wddx_color,$wddx_size 和 $wddx_shape。

必须使用关联数组,数字索引的数组将不会产生结果,除非用了 EXTR_PREFIX_ALL 或者 EXTR_PREFIX_INVALID。
分享到:
评论

相关推荐

    C++ Builder XE10使用ExtractFile返回函数的用法.zip

    如果在项目中使用`ExtractFile`函数,可以动态地从ZIP文件中加载这些资源,比如在运行时更新或下载应用程序的特定组件。 例如,`Project2.cpp`可能是项目的主程序文件,`Unit4.cpp`和`Unit4.h`可能是一个单元(Unit...

    Oracle的XML函数

    例如,可以使用 EXTRACT 函数来提取 XML 文档中的某个节点,然后使用 UPDATEXML 函数来更新该节点的值。 Oracle 的 XML 函数提供了一种灵活的方式来处理 XML 数据,使得开发者可以更方便地处理和操作 XML 数据。

    第34讲 截取函数 $EXTRACT.pdf

    【截取函数 $EXTRACT】在编程语言中,$EXTRACT是一个非常实用的函数,用于从字符串中提取或替换特定的子字符串。本讲主要介绍了两种使用$EXTRACT的方法。 首先,我们可以使用$EXTRACT(string,from,to)来从字符串中...

    ARCGIS中Extract by mask使用

    ### ARCGIS中Extract by mask使用详解 #### 一、工具简介 在ArcGIS软件中,**Extract by Mask**是一个非常实用且强大的空间分析工具,主要用于根据特定的面数据(通常称为“掩膜”或“mask”)来提取指定区域内感...

    TLS1.3双方使用证书身份认证的密钥导出详细过程.docx

    在 TLS1.3 中,密钥导出过程使用 HKDF-Extract 和 HKDF-Expand 函数来计算出所有的密钥。该过程可以分为两个步骤:Early Secret 和 Handshake Secret。 Early Secret 是首先计算的密钥,用于协商出共享密钥 ECDHE。...

    oracle函数大全中文api文档

    "Oracle函数大全中文API文档"是一个非常实用的资源,它提供了对Oracle数据库所有内置函数的详尽解释,帮助开发者和DBA快速理解和使用这些函数。 1. **日期与时间函数**: Oracle提供了处理日期和时间的大量函数,...

    oracle 函数大全 参考函数 手册 速查 chm格式

    3. 日期时间函数:如SYSDATE(获取当前系统日期)、ADD_MONTHS(添加月份)、EXTRACT(提取日期部分)等,便于对日期和时间进行操作。 4. 转换函数:如TO_CHAR(字符串转换为日期或数字)、TO_DATE(日期转换为字符...

    MATLAB--image-feature-extract.rar_matlab_matlab Extract image_ma

    精通MATLAB图像处理代码matlab图像特征提取实战例子,包括使用图片

    oracle常用函数使用说明

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的...在实际使用中,应结合具体需求选择合适的函数,以提高查询效率和代码的可读性。通过深入学习和实践,可以充分利用这些函数来解决各种数据处理问题。

    马丢函数matlab工具箱

    6. `extract_one_value.m`:这个函数很可能是用来从马丢函数的计算结果中提取特定值的,比如某个特定参数下的函数值或者特定解。 利用这个工具箱,用户可以轻松地在MATLAB环境下计算各种马丢函数及其导数,这对于...

    oracle函数大全中文

    通过"Oracle函数大全(分类显示).chm"这个文档,你可以全面了解并掌握这些函数的使用方法和应用场景,从而更好地在Oracle数据库中进行数据操作和查询。这个资源对于数据库管理员、开发人员和数据分析者来说都是非常...

    oracle函数大全(CHM格式).rar

    例如,有些函数可能不适用于特定的数据类型,或者在某些特定的SQL语句中使用时有特殊的注意事项。CHM文件通常会提供这些关键细节,帮助开发者避免常见错误,提高代码的效率和正确性。 通过深入研究这个"Oracle函数...

    Oracle几个很有用的特殊函数使用方法,经验只谈

    以上只是Oracle特殊函数中的一部分,实际应用中还有许多其他函数,如 `DECODE`、`CASE` 语句等,可以根据具体需求灵活选择和组合使用。熟练掌握这些函数,能有效提高在Oracle SQL中的编程效率和数据处理能力。在实际...

    hive函数大全 函数参考

    12. **正则表达式解析函数** (`regexp_extract`): 使用正则表达式从字符串中提取子串。 13. **URL解析函数** (`parse_url`): 解析URL。 14. **json解析函数** (`get_json_object`): 解析JSON字符串。 15. **空格字符...

    Oracle函数使用大全

    在"Oracle函数使用大全"中,我们可以找到许多关于Oracle数据库函数的详细讲解。以下是一些关键知识点的概述: 1. **聚合函数**:如COUNT()用于计算行数,SUM()用于求和,AVG()计算平均值,MAX()和MIN()找出最大值和...

    hive函数大全(中文版)

    13. 正则表达式解析函数:regexp_extract 26 14. URL解析函数:parse_url 26 15. json解析函数:get_json_object 27 16. 空格字符串函数:space 27 17. 重复字符串函数:repeat 27 18. 首字符ascii函数:ascii 28 19...

    oracle 10G函数大全(中文)

    - 分组函数如COUNT、SUM、AVG、MAX、MIN在GROUP BY子句中使用,对分组数据进行计算。 - 分析函数如ROW_NUMBER、RANK、DENSE_RANK、LAG、LEAD等,用于窗口查询,提供行间计算功能。 5. **连接和比较函数**: - ...

    ORACLE操作XML函数

    ### ORACLE操作XML函数 #### 一、XMLTYPE_instance与XPath_string 在Oracle数据库中,`XMLTYPE`是一...这些函数提供了强大的工具来操作和管理Oracle数据库中的XML数据,使得开发者能够更加灵活地处理复杂的XML结构。

    Laravel开发-extract-translations

    "Laravel开发-extract-translations"是一个专为Casa Parks设计的工具,用于从Laravel项目中自动提取并管理翻译。这个工具简化了多语言环境下字符串的维护工作,帮助开发者更高效地处理翻译文件。 Laravel的翻译系统...

    PHP extract 将数组拆分成多个变量的函数

    在示例代码中,我们首先声明了一个关联数组,并使用extract函数将数组中的键值对转换成了独立的变量。由于$extract_type默认为EXTR_OVERWRITE,所以原本声明的$size变量被覆盖成了数组中size键对应的值"XXL"。随后...

Global site tag (gtag.js) - Google Analytics