2014-06-07 1 views
0

안녕하세요, 저는 항상 1의 값을 반환하는 매우 간단한 PHP 함수를 가지고 있습니다. 변수 $ board의 값을 1,2,3,4,5,6 등과 같이 증가시켜야합니다. 여기에 오류를 잡을 수 없습니까? for 루프에서PHP는 함수에서 변수를 증가시킵니다. 이 함수는 for 루프에서 실행됩니다. 0으로 재설정 하시겠습니까?

function poste() { 

      $board++; 
      echo $board; 

      global $sourcedir; 

      require_once($sourcedir . '/Subs-Post.php'); 

      $msgoptions = array(
        'id' => 0, 
        'body' => 'Welcome', 
        'subject' => 'Welcome To The Boards', 
      ); 
      $topicoptions = array(
        'id' => 0, 
        'board' => $board, 
        'poll' => null, 
        'lock_mode' => 0, 
        'sticky_mode' => 0, 
        'mark_as_read' => false, 
      ); 


      $posteroptions = array(
        'update_post_count' => 1, 
      ); 

      createPost($msgoptions, $topicoptions, $posteroptions); 
    } 

    for($board = 1; $board <= 3; $board++){ 
    $board++; 
    echo $board; 
    poste(); 
    } 

답변

2

$board은 함수에서 동일하지 않습니다. 함수는 "서브 프로그램"이므로 다른 변수입니다.

poste($board)과 같은 것을 사용하십시오.

function poste($board) { 

     $board++; 
     echo $board; 

     global $sourcedir; 

     require_once($sourcedir . '/Subs-Post.php'); 

     $msgoptions = array(
       'id' => 0, 
       'body' => 'Welcome', 
       'subject' => 'Welcome To The Boards', 
     ); 
     $topicoptions = array(
       'id' => 0, 
       'board' => $board, 
       'poll' => null, 
       'lock_mode' => 0, 
       'sticky_mode' => 0, 
       'mark_as_read' => false, 
     ); 


     $posteroptions = array(
       'update_post_count' => 1, 
     ); 

     createPost($msgoptions, $topicoptions, $posteroptions); 
} 

for($board = 1; $board <= 3; $board++){ 
$board++; 
echo $board; 
poste($board); 
} 

이렇게하면됩니다.

+0

아! 완전한. 훌륭한 감사합니다. 6 분 안에 답을 수락합니다. – Sam