[英]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.