只是尝试在函数中返回一个数组。没有好运......
(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];
?>
答案 0 :(得分:3)
调用它时,您需要将$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];
?>
这就是您的代码需要的样子。
答案 1 :(得分:2)
您需要传入$ users_friends_ids的引用或在函数中将其声明为全局。
问题在于,当您将内容移动到某个函数中时,它无法再访问您的局部变量。
答案 2 :(得分: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;
}