Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将_POST参数映射到变量的更好方法_Php_Post_Dry_Url Parameters - Fatal编程技术网

Php 将_POST参数映射到变量的更好方法

Php 将_POST参数映射到变量的更好方法,php,post,dry,url-parameters,Php,Post,Dry,Url Parameters,我确信有一种更好的方法可以将所有的POST参数映射到同名变量。有人知道如何做得更好吗 $ownerName = $_POST["ownerName"]; $ownerEmail = $_POST["ownerEmail"]; $ownerPhone = $_POST["ownerPhone"]; $ownerAddress = $_POST["ownerAddress"]; $buyerName = $_POST["buyerName"]; $buyerEmail = $_POST["buyer

我确信有一种更好的方法可以将所有的POST参数映射到同名变量。有人知道如何做得更好吗

$ownerName = $_POST["ownerName"];
$ownerEmail = $_POST["ownerEmail"];
$ownerPhone = $_POST["ownerPhone"];
$ownerAddress = $_POST["ownerAddress"];
$buyerName = $_POST["buyerName"];
$buyerEmail = $_POST["buyerEmail"];
$buyerPhone = $_POST["buyerPhone"];
$buyerAddress = $_POST["buyerAddress"];
$propertyAddress = $_POST["propertyAddress"];
$parcelNumber = $_POST["parcelNumber"];

非常感谢。

PHP中有一个函数用于将值转换为变量:

<?php
extract($_POST, EXTR_SKIP);
?>

如果您使用的是php>5,我建议您查看以下内容:


过滤器输入函数允许您轻松应用一些您可能需要的验证和卫生功能。

您可以通过这种方式使用foreach(与
提取不同)
您可以操作/检查变量名称或值

<?php
foreach($_POST as $key => $value) 
   $$key = $value;
?>


Wow我今天学到了一些新东西。很好奇这到底有多安全?例如,如果我有一个布尔值“$authorized”,有人用
authorized=true
发帖,它会覆盖这个值吗?哇!非常感谢你给出的完美答案,以及帮助n00b=D@Amir使用第二个参数,您可以避免..我放置的参数“EXTR_SKIP”将完全做到这一点。如果变量已经存在,不要重写。Amir,这就是EXTR_SKIP的目的,如果变量已经存在,它将不会重写它。这是一个非常酷的函数,但它在页面上说,警告-不要对不受信任的数据使用extract(),如用户输入(即$\u GET,$\u文件等)。如果您这样做,例如,如果您想临时运行依赖register_globals的旧代码,请确保使用一个非覆盖的extract_类型值,例如EXTR_SKIP,并注意应按照php.ini中变量_顺序中定义的相同顺序进行提取。