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

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

在form.html中,

<!DOCTYPE html>

<html>

<head>

<title>extract</title>

<meta charset="utf-8">

</head>

<body>

  <div>

       <form action="action.php" method="post">

            <input type="text" name="username">

             <input type="password" name="password">

             <input type="submit">

       </form>

   </div>

</body>

在action.php中:

<?php

extract($_post);

//使用extract()函数将$_POST全局数据解开:

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

?>

详细解释示例:

<?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

此外:
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 - 将变量作为引用提取。导入的变量仍然引用了数组参数的值



原文地址:https://www.cnblogs.com/zhirusi/p/7531787.html