コードに次のような行があります。
list($user_id, $name, $limit, $remaining, $reset) = explode('|', $user);
最後の 3 つのパラメーターは、存在する場合と存在しない場合があります。配列が予想よりも小さい場合、最後のパラメーターを自動的に無視する list に似た関数はありますか?
list($user_id, $name, $limit, $remaining, $reset)
= array_pad(explode('|', $user), 5, null);
SDC のソリューションが「ハッキー」に感じられることを懸念している場合。次に、いくつかのデフォルト値を設定して使用できます。
$user = '3|username';
$defaults = array(NULL, NULL, 10, 5, FALSE);
list($user_id, $name, $limit, $remaining, $reset) = explode('|', $user) + $defaults;
var_dump($user_id, $name, $limit, $remaining, $reset);
文字列の最後に予備のパイプを追加するだけです。
list($user_id, $name, $limit, $remaining, $reset) = explode('|', $user.'||||');
問題が解決しました。
注:任意のパイプ区切りデータをロードする場合は、str_getcsv()
ではなく関数を使用することをお勧めしますexplode()
。