0

与えられた、

$required_fields = array('name', 'location', 'email');                               
foreach ($required_fields as $fieldname) {
    if (isset($_POST[$fieldname]) || !empty($_POST[$fieldname])) {      


        }

今ifステートメントで、私は次のようなものが必要です

$fieldname = $_POST[$fieldname]; 

だから私は得る

$ name = "name"、$ location = "location"、$ email = "email"

$ fieldname = $ _POST [$ fieldname]を試しましたが、機能しません。これを動的に行うにはどうすればよいですか?

4

4 に答える 4

9

あなたはこのようにします、

$$fieldname = $_POST[$fieldname]; 

この$$表記は変数変数と呼ばれます。

于 2012-12-25T15:47:00.510 に答える
3

extract このための関数を使用できます。配列をフィルタリングするには、array_diff 関数を使用できます

于 2012-12-25T15:47:06.527 に答える
1
$required_fields = array('name', 'location', 'email');
extract(array_intersect_keys($_POST, array_flip($required_fields)));

$required_fieldsこれにより、$ _ POST配列に存在する場合にのみ、で指定された変数ごとにローカル変数が作成されます。それ以外の場合、変数は未定義になります。

array_fliparray_intersect_key抽出
_

于 2012-12-25T16:17:21.313 に答える
-2

使用することもできます

eval("$".$fieldname."='".$_POST["fieldname"]."';");
于 2012-12-25T15:55:42.827 に答える