2014-02-15 45 views
0

如何传递增量的类型抛出一个变量像波纹管的例子:PHP通过增量式抛出一个变量

function next_prev_elem($step_id, $array, $incre){ 
    foreach ($array as $i) { 
     $incre.$step_id; 
     foreach ($array as $item) { 
      if($step_id === $item['id']){ 
       return $step_id; 
       break; 
      } 
     } 
    } 
    return false; 
} 
$prev_id = next_prev_elem($id, $page_news, '--'); 
$next_id = next_prev_elem($id, $page_news, '++'); 
+1

您无法传递运算符,但可以测试字符串。 'if($ incre =='++'){$ var ++; } else {$ var - ;}'或者传入实际的增量值。 'next_prev_elem(....,-1)'和'next_prev_element(...,1)',然后加入它。传入正值/负值自然会处理“方向”。 –

回答

0

感谢@Marc B,我结束了此解决方案:

function next_prev_elem($step_id, $array, $step){ 
    foreach ($array as $i) { 
     $step_id = $step_id + $step; 
     foreach ($array as $item) { 
      if($step_id === $item['id']){ 
       return $step_id; 
       break; 
      } 
     } 
    } 
    return false; 
} 
$prev_id = next_prev_elem($id, $page_news, -1); 
$next_id = next_prev_elem($id, $page_news, 1); 
0
function next_prev_elem($step_id, $array, $incre){ 
    foreach ($array as $i) { 

     switch($incre) { 
      case '++': 
      $step_id++; 
      break; 
      case '--': 
      $step_id--; 
      break; 
     } 

     foreach ($array as $item) { 
      if($step_id === $item['id']){ 
       return $step_id; 
       break; 
      } 
     } 
    } 
    return false; 
} 

$prev_id = next_prev_elem($id, $page_news, '--'); 
$next_id = next_prev_elem($id, $page_news, '++');