尝试在函数中使用PHP extract()

尝试在函数中使用PHP extract(),php,Php,我有以下两个文件: main.php include("functions.php") __EXTRACT(); echo $testvar; functions.php function __EXTRACT(){ extract($_POST, EXTR_SKIP); } 但是,有一个名为testvar的文本框表单,我无法获取提取数据的提取函数。。如果我删除函数调用并将其插入,extract语句将直接插入main.php中,它将正常工作。include不是一个问题,因为它中的其他函

我有以下两个文件:

main.php

include("functions.php")  
__EXTRACT();  
echo $testvar;
functions.php

function __EXTRACT(){
extract($_POST, EXTR_SKIP);
}
但是,有一个名为testvar的文本框表单,我无法获取提取数据的提取函数。。如果我删除函数调用并将其插入,extract语句将直接插入main.php中,它将正常工作。include不是一个问题,因为它中的其他函数可以工作。有什么想法吗


干杯

你不能这样做:在你的例子中,
提取()
\u提取()
函数中创建变量,当函数结束时,这些变量就消失了


无论如何,使用
extract()
很少是个好主意。

你不能这样做:在你的例子中,
extract()
\uextract()
函数内部创建变量,当函数结束时,这些变量就消失了


无论如何,使用
extract()
很少是个好主意。

您不想这样做。这基本上只是在PHP内部模拟
register\u globals
。有一个原因,它在默认情况下已关闭多年,并在6年内被删除…

您不想这样做。这基本上只是在PHP内部模拟
register\u globals
。有一个原因是它在默认情况下已关闭多年,并在6中被删除…

谢谢,但是有没有办法这样做,这样它会在函数外部创建变量?直接使用
extract()
,或者更好的是,使用
$\u POST
中的值而不提取它们。呵呵,我知道$\u POST用法是最好的,但这是为了快速原型,只是想知道这是否可行。再次感谢。Extract非常适用于小型项目或原型设计,或者数据库中数据有限/列很少的任何地方。EXTR_PREFIX_ALL与记录名一起使用非常适合解决变量名冲突。在我看来,extract()没有理由不能使用EXTR_DECLARE GLOBAL标志来允许在函数内部使用它。在PHP extract()手册中,您将看到使用哪些数组是危险的-对于所有其他数组,这是一个很好且功能强大的函数。谢谢,但是有没有办法做到这一点,这样它就可以在函数外部创建变量?直接使用
extract()
,或者更好地使用
$\u POST
中的值而不提取它们。呵呵,我知道$u POST使用是最好的,但这是用于快速原型制作的,我只是想知道这是否可行。再次感谢。Extract非常适用于小型项目或原型设计,或者数据库中数据有限/列很少的任何地方。EXTR_PREFIX_ALL与记录名一起使用非常适合解决变量名冲突。在我看来,extract()没有理由不能使用EXTR_DECLARE GLOBAL标志来允许在函数内部使用它。在extract()的PHP手册中,您将看到对于哪些数组使用它是危险的——对于所有其他数组,它是一个很好且功能强大的函数。