繁体   English   中英

在PHP中返回数组时出现问题

[英]Problems returning an array in PHP

只是试图返回一个函数数组。 没有最好的运气...

(flag_friend_get_friends()是一个返回包含数组的对象列表的函数)

因此,如果没有函数,它将起作用:

    <?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传递给函数:

$ test = myfunc($user)

更新:

<?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];
?>

这就是您的代码需要的样子。

而且您要么需要传递$ users_friends_ids的引用,要么在函数中将其声明为全局引用。

问题是,当您将内容移入函数时,它不再具有对局部变量的访问权限。

在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;  
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM