首页 > php教程 > PHP源码 > 正文

PHP中extract函数各种用法介绍

php中文网
发布: 2016-06-08 17:24:50
原创
1606人浏览过

本文章详细的介绍了关于PHP中extract函数各种用法介绍,从把数据变成变量,post,get数据处理等有需要的同学可参考一下。

<script>ec(2);</script>

直接上代码:

 代码如下 复制代码
$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

没有定义变量$a $b $c ,也没有赋值,为什么就可以可以获取值了?


比方说,可以很方便的提取$_POST或者$_GET的元素,对表单提交上来的内容不能不用一一赋值,直接使用下面代码:

form.html

立即学习PHP免费学习笔记(深入)”;

法语写作助手
法语写作助手

法语助手旗下的AI智能写作平台,支持语法、拼写自动纠错,一键改写、润色你的法语作文。

法语写作助手 31
查看详情 法语写作助手
 代码如下 复制代码

 



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

 代码如下 复制代码

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


数组操作


相关例子:

 代码如下 复制代码

/* 假定 $var_array 是 wddx_deserialize 返回的数组*/

$size = "large";
$var_array = array("color" => "blue",
"size" => "medium",
"shape" => "sphere");
extract($var_array, EXTR_PREFIX_SAME, "wddx");

echo "$color, $size, $shape, $wddx_sizen";

?>


上例将输出:

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。


数组2


.适用范围:非数字索引的数组,数组中有键值对;
2.函数创建的变量名是数组中的关键字,变量的值是数组中对应的值;
3.两个可选参数:extract_type和prefix;
    其中extract_type指定处理变量名冲突的方法,默认是EXTR_OVERWRITE,表示覆盖已有的变量,
    当extract_type的值为EXTR_PREFIX_ALL时,给所有创建的变量前加上前缀,前缀为prefix参数提供;
4.数组中元素的关键字必须是有效的变量名,否则将被跳过。
   
实例:

array_extract.php:

 代码如下 复制代码


   


        Test Array Extract
   
   
                    $array = array('key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3');
            extract($array);
            echo 'Default:
';
            echo "$key1 $key2 $key3
";
           
            //发生冲突时跳过一个元素
            $key1 = "abc";
            extract($array, EXTR_SKIP);
            echo 'Skip:
';
            echo "$key1 $key2 $key3
";

            //在所有变量名前加上由prefix参数提供的值
            extract($array, EXTR_PREFIX_ALL, 'my');
            echo 'Prefix_All:
';
            echo "$my_key1 $my_key2 $my_key3
";
        ?>
   


是不是很方便呢?
关于此函数用介绍可参考http://www.111cn.net/phper/24/04ef3db43c8278b93cdd9203999b8352.htm

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号