1

私はこのコードを持っています

if(!array_key_exists('key1', $_POST)){
    $_POST['key1'] = null;
}
if(!array_key_exists('key_x', $_POST)){
    $_POST['key_x'] = null;
}
if(!array_key_exists('key_polar_8', $_POST)){
    $_POST['key_polar_8'] = null;
}
if(!array_key_exists('nilak', $_POST)){
    $_POST['nilak'] = null;
}

これを書く方が良いですか、それとも短い方法ですか?

4

3 に答える 3

11

フィールド名を配列に入れてから、ループを使用できます。

$keys = array('key1', 'key_x', 'key_polar_8', 'nilak');
foreach($keys as $k){
    if(!array_key_exists($k, $_POST)){
       $_POST[$k] = null;
    }
}
于 2012-08-24T17:33:03.447 に答える
3

編集:array_key_exists別の創造的な方法:毎回 かどうかをチェックする代わりに、それらのキーを見つけてarray_diff_keyput null.

$posted_keys = array("key1" , "key2" , "nilak");
$not_in_post = array_diff_key($posted_keys, $_POST);
foreach($not_in_post as $k)
  $_POST[$k] = null;

(これについての意見をお聞きしたいです)

ループは王様です。

$posted_keys = array("key1" , "key2" , "nilak");
foreach($posted_keys as $key)
{
  if(!array_key_exists($key , $_POST))
  {
   $_POST[$key] = null;
  }
}
于 2012-08-24T17:33:37.827 に答える