PHP extract() 函数

定义和用法

PHP extract() 函数从数组中把变量导入到当前的符号表中。

对于数组中的每个元素,键名用于变量名,键值用于变量值。

第二个参数 type 用于指定当某个变量已经存在,而数组中又有同名元素时,extract() 函数如何对待这样的冲突。

本函数返回成功设置的变量数目。

语法

extract(array,extract_rules,prefix)
参数 描述
array 必需。规定要使用的输入。
extract_rules
可选。extract() 函数将检查每个键名是否为合法的变量名,同时也检查和符号表中的变量名是否冲突。

对非法、数字和冲突的键名的处理将根据此参数决定。可以是以下值之一:

可能的值:

  • EXTR_OVERWRITE - 默认。如果有冲突,则覆盖已有的变量。
  • EXTR_SKIP - 如果有冲突,不覆盖已有的变量。(忽略数组中同名的元素)
  • EXTR_PREFIX_SAME - 如果有冲突,在变量名前加上前缀 prefix。自 PHP 4.0.5 起,这也包括了对数字索引的处理。
  • EXTR_PREFIX_ALL - 给所有变量名加上前缀 prefix(第三个参数)。
  • 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 新加的。
prefix
可选。请注意 prefix 仅在 extract_type 的值是 EXTR_PREFIX_SAME,EXTR_PREFIX_ALL,EXTR_PREFIX_INVALID 或 EXTR_PREFIX_IF_EXISTS 时需要。如果附加了前缀后的结果不是合法的变量名,将不会导入到符号表中。

前缀和数组键名之间会自动加上一个下划线。

例子 1

<?php
$a = ‘Original‘;
$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");
extract($my_array);
echo "\$a = $a; \$b = $b; \$c = $c";
?>
输出:

$a = Cat; $b = Dog; $c = Horse

例子 2

使用全部参数:

<?php
$a = ‘Original‘;
$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");

extract($my_array, EXTR_PREFIX_SAME, ‘dup‘);

echo "\$a = $a; \$b = $b; \$c = $c; \$dup_a = $dup_a;";
?>
输出:

$a = Original; $b = Dog; $c = Horse; $dup_a = Cat;
时间: 2024-10-16 22:17:24

PHP extract() 函数的相关文章

PHP中extract()函数的妙用

看cakephp 2.3.8的源代码,很多地方都用 到 compact('name', 'response'); extract($status, EXTR_OVERWRITE); 这样的代码.compact()函数之前有查过, extract()函数用的比较少. 原来extract()是将数组的 "解开"成一个一个散开的变量,哈哈哈!!! -------------------------------------------------------------------------

oracle中extract()函数----用于截取年、月、日、时、分、秒

oracle中extract()函数从oracle 9i中引入,用于从一个date或者interval类型中截取到特定的部分 语法如下: extract ( { year | month | day | hour | minute | second } | { timezone_hour | timezone_minute } | { timezone_region | timezone_abbr } from { date_value | interval_value } ) 只可以从一个da

extract函数在表单提交中提供的方便之处

extract - 从数组中将变量导入到当前的符号表 在form.html中, <!DOCTYPE html> <html> <head> <title>extract</title> <meta charset="utf-8"> </head> <body> <div> <form action="action.php" method="po

(转)PHP中extract()函数的妙用

近日在看一个牛人的代码时,看到一个非常好用的函数:extract(),它的主要作用是将数组展开,键名作为变量名,元素值为变量值,可以说为数组的操作提供了另外一个方便的工具,比方说,可以很方便的提取$_POST或者$_GET的元素,对表单提交上来的内容不能不用一一赋值,直接使用下面代码: form.html <form action="action.php" method="post"><input type="text" nam

php中的extract函数

extract函数用来将一个数字分解成多个变量直接使用,下面是W3C的解释:PHP extract() 函数从数组中把变量导入到当前的符号表中.对于数组中的每个元素,键名用于变量名,键值用于变量值.第二个参数 type 用于指定当某个变量已经存在,而数组中又有同名元素时,extract() 函数如何对待这样的冲突.本函数返回成功设置的变量数目. 下面表格是参数说明: 语法extract(array,extract_rules,prefix) 参数 描述 array 必需.规定要使用的输入. ex

(转)PHP中extract()函数的妙用

近日在看一个牛人的代码时,看到一个非常好用的函数:extract(),它的主要作用是将数组展开,键名作为变量名,元素值为变量值,可以说为数组的操作提供了另外一个方便的工具,比方说,可以很方便的提取$_POST或者$_GET的元素,对表单提交上来的内容不能不用一一赋值,直接使用下面代码: form.html <form action="action.php" method="post"><input type="text" nam

PG extract 函数示例

pg 对时间的处理还是很灵活的, + - * /  都有支持 期间有个extract 函数还是很有用的,我们先来看看几个例子:[code] postgres=# select extract(epoch from '1970-01-01'::timestamp) ;          date_part -----------         0(1 row) postgres=# select extract(epoch from '1970-01-01 00:00:01'::timestam

【解迷糊】关于PHP的extract()函数提取出的变量的作用域问题

真理:该函数提取出的变量遵循 变量作用域 的原则,见下图: 四种情况: class Test { public function dosome() { $arr = ['x' => 'xing', 'y' => 'ya']; extract($arr); } public function get() { return $x; } } $test = new Test(); $test->dosome(); $a = $test->get(); echo $a; //无法打印 $a

oracle extract函数笔记

一.作用:从一个date(日期)类型或者interval(时间区间)类型中截取指定的部分. 二.范例:获取系统当前时间 select sysdate from dual ; SYSDATE ----------- 2016/1/3 18 分别获取对应的年月日时分秒 (1)select (to_char(sysdate,'YYYY')) from dual (2)select (to_char(sysdate,'YEAR')) from dual (1)结果:2015  (2)结果:TWENTY