我很确定这是什么以及如何在表单处理中使用它。它是否只删除不在$ expected []中的不需要的$ _POST条目?我还应该使用$ _POST ['carModel']来获取值吗?或者可能有更好的方法?
<?php
$expected = array( 'carModel', 'year', 'bodyStyle' );
foreach( $expected AS $key ) {
if ( !empty( $_POST[ $key ] ) ) {
${$key} = $_POST[ $key ];
}
else
{
${$key} = NULL;
}
}
?>
答案 0 :(得分:1)
它使用相应POST字段的内容创建变量$ carModel,$ year等,如果没有任何内容则为null。
答案 1 :(得分:1)
<?php
// builds an array
$expected = array( 'carModel', 'year', 'bodyStyle' );
// loops over the array keys (carModel, year...)
foreach( $expected AS $key ) {
// checks, if this key is found in the incomming POST array and not empty
if ( !empty( $_POST[ $key ] ) ) {
// assigns the value of POST, to a variable under the key name
${$key} = $_POST[ $key ];
} else {
// or nulls it, which is totally pointless :)
${$key} = NULL;
}
}
?>
$ expected数组的意图是为POST数组键提供白名单。 有更好的方法来实现它,尤其是filter_input(),filter_input_array()。
示例代码 http://www.php.net/manual/en/function.filter-input-array.php
答案 2 :(得分:0)
是的,伪代码$ {$ variable}是一个新变量的创建,又名:
//$_POST['test'],$_POST['future']
foreach( $_POST AS $key ) {
${$key} = $_POST[ $key ];
}
你将$ _POST [$ key]分配给$ test,比如$ test = $ _POST [$ key]; echo $ future; //具有相同的$ _POST ['future']
的值现在你可以跳过使用$ _POST来使用$ test,post中的所有数组键应该分配在一个由键名调用的变量中;
在您的示例中,$ excepted工作就像过滤器一样,只分配此数组中的变量。在分配给$ {$}之前,您应该使用过滤器来清理$ _POST。
答案 3 :(得分:0)
如果在示例中发布数据
$_POST["carModel"] = "BMW";
$_POST["year"] = 2013;
这意味着......
$carModel = "BMW";
$year = 2013;
$bodyStyle = null;
与
相同extract( $_POST );