2011-04-18 6 views
0

그냥 함수에서 배열을 반환하려고합니다.() (배열을 포함하는 객체의 목록을 반환하는 함수 flag_friend_get_friends한다) ... 행운 따라서 기능이없는PHP에서 배열을 반환하는 문제

을 가지고 있지,이 작품 :

<?php 

    $users_friends = flag_friend_get_friends($user->uid); 

     foreach ($users_friends as $id => $value) {  
     $users_friends_ids[] = $id;  
     } 

    $test = $users_friends_ids; 

    print $test[0]; 

    ?> 

나는 경우, 시도하고 그것을 포장, 작동하지 않습니다 (아무것도 인쇄되지 않습니다 ...) :

  <?php 

     function myfunc() {   

     $users_friends = flag_friend_get_friends($user->uid); 

      foreach ($users_friends as $id => $value) {  
      $users_friends_ids[] = $id;  
      } 

     return $users_friends; 

     } 


     $test = myfunc(); 

     print $test[0]; 

     ?> 

'고의적 인'실수는 무엇입니까? :(

업데이트 코드 :

<?php 
function myfunc() {   

$users_friends = flag_friend_get_friends($user->uid); 
    foreach ($users_friends as $id => $value) {  
    $users_friends_ids[] = $id;  
    } 

return $users_friends; 
} 

$test = myfunc($user); 
print $test[0]; 
?> 
당신은 당신이 그것을 호출 할 때 함수에 $user를 통과해야

답변

3

:

$ 테스트 = myfunc($user)

UPDATE :

<?php 
function myfunc ($user) {   

$users_friends = flag_friend_get_friends($user->uid); 
    foreach ($users_friends as $id => $value) {  
    $users_friends_ids[] = $id;  
    } 

return $users_friends; 
} 

$test = myfunc($user); 
print $test[0]; 
?> 

That 's w 모자가 당신의 코드처럼 보일 필요가 있습니다.

+0

이것이 작동하지 않는 것 같습니다. 이것은 약간의 악몽으로 변하고 있습니다 ... – james6848

+0

업데이트 된 코드를 게시 할 수 있습니까? –

+0

나는 그것을 위에 게시 할 것이다, 환호. – james6848

2

그리고 $ users_friends_ids에 대한 참조를 전달하거나 함수 내에서 전역으로 선언해야합니다.

문제는 물건을 함수로 옮기면 더 이상 로컬 변수에 액세스 할 수 없다는 것입니다.

+0

$ users_friends_ids [] 함수 안에 제대로 선언되지 않은 경우에도 작동해야합니다. 이 경우 PHP는 $ users_friends_ids를 배열로 만들고 요소를 추가합니다. –

+0

기능을 사용할 수 없으므로 "작동하지 않습니다". 그 코드는 함수 밖에서 코드에 접근하지 않는다.하지만 중요한 것은 코드를 가져 와서 함수로 옮길 때 일반적인 문제는 더 이상 같은 변수 범위에 액세스 할 수 없다는 것이다. –

2

drupal에서 $ user는 전역입니다. 따라서이 함수가 항상 현재 사용자의 친구를 끌어 들이면 ** 함수의 맨 위에 정의해야합니다.

function myfunc() {   
    // pull in the global $user var 
    global $user; 

    $users_friends = flag_friend_get_friends($user->uid); 

    foreach ($users_friends as $id => $value) {  
    $users_friends_ids[] = $id;  
    } 

    return $users_friends; 
} 
관련 문제