Ignore:
Timestamp:
2011/08/05 19:31:55 (13 years ago)
Author:
Seasoft
Message:

#853 (SC_FormParam#getSwapArray 歯抜けを正しく処理できない)

  • エラー処理に対応していなかったため追加実装
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_11-dev/data/class/SC_FormParam.php

    r21127 r21134  
    255255     * @param integer $length チェック対象の値の長さ 
    256256     * @param integer $depth 再帰実行した場合の深度 
    257      * @param integer $recursion_count 再帰実行した回数 
     257     * @param integer $error_last_key エラーメッセージを格納する配列の末端のキー 
    258258     * @return void 
    259259     */ 
    260260    function recursionCheck($disp_name, $func, $value, &$arrErr, $error_key, 
    261                             $length = 0, $depth = 0, $recursion_count = 0) { 
     261                            $length = 0, $depth = 0, $error_last_key = null) { 
    262262        if (is_array($value)) { 
    263263            $depth++; 
    264             $recursion_count = 0; 
    265             foreach ($value as $in) { 
     264            foreach ($value as $key => $in) { 
    266265                $this->recursionCheck($disp_name, $func, $in, $arrErr, $error_key, 
    267                                       $length, $depth, $recursion_count); 
    268                 $recursion_count++; 
     266                                      $length, $depth, $key); 
    269267            } 
    270268        } else { 
     
    279277                        for ($i = 0; $i < $depth; $i++) { 
    280278                            // FIXME 二次元以上の対応 
    281                             $error_var .= '[' . $recursion_count . ']'; 
     279                            $error_var .= '[' . $error_last_key . ']'; 
    282280                        } 
    283281                        eval($error_var . ' = $message;'); 
Note: See TracChangeset for help on using the changeset viewer.