+ -
当前位置:首页 → 问答吧 → 自动处理这个方法里有个地方没看懂

自动处理这个方法里有个地方没看懂

时间:2011-10-14

来源:互联网

  1.                     switch ($auto[3]) {
  2.                         case 'function':    //  使用函数进行填充 字段的值作为参数
  3.                         case 'callback': // 使用回调方法
  4.                             $args = isset($auto[4]) ? $auto[4] : array();
  5.                             if (isset($data[$auto[0]])) {
  6.                                 array_unshift($args, $data[$auto[0]]);
  7.                             }
  8.                             if ('function' == $auto[3]) {
  9.                                 $data[$auto[0]] = call_user_func_array($auto[1], $args);
  10.                             } else {
  11.                                 $data[$auto[0]] = call_user_func_array(array(&$this, $auto[1]), $args);
  12.                             }
  13.                             break;
  14.                         case 'field':    // 用其它字段的值进行填充
  15.                             $data[$auto[0]] = $data[$auto[1]];
  16.                             break;
  17.                         case 'string':
  18.                         default: // 默认作为字符串填充
  19.                             $data[$auto[0]] = $auto[1];
  20.                     }
复制代码
case 'callback'
if ('function' == $auto[3])
$auto[3]怎么能是两个值呢?

作者: lane   发布时间: 2011-10-14

你不能光看  case 'callback'
要注意 前面的 case 'function' 语句后面是没有 break; 语句的哦 。。。。
也就是说 这里的  $auto[3]  可能是  function  也可能是  callback

作者: zuojiazi   发布时间: 2011-10-14