gpt4 book ai didi

php - Drupal - 如何使数组可全局访问?

转载 作者:可可西里 更新时间:2023-11-01 13:20:10 26 4
gpt4 key购买 nike

我在 View 字段模板中使用此代码(在本例中为 views-view-field--all-members--uid.tpl.php):

<?php

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

$users_friends_ids = array();

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


?>

它基本上是获取 friend 的用户 ID 并将它们放入一个数组中,这样我就可以检查该字段是否与任何用户 ID 匹配。

所以我的问题是我不想在这个模板中包含它(出于某些原因),但如果我不这样做,我将无法访问该数组。我怎样才能让这个阵列全局访问?

最佳答案

在不知道您的“几个原因”的情况下,我不能确定这是否是答案。我自己的原因可能是我不希望相同的代码执行很多次,而且我不想在多个地方使用完全相同的代码。

然后我会创建一个带有静态变量的函数来保存 friends 数组。

function mymodule_get_friends_ids() {
// pull in the current global user variable
global $user;

// call up the static variable
static $users_friends_ids;
// return if this static var has already been set
if (is_array($users_friends_ids)) {
return $users_friends_ids;
}

// if we hit here, then this function has not been
// run yet for this page load.

// init array
$users_friends_ids = array();

// if user is anon, no need to go on
if (user_is_anonymous()) {
return $users_friends_ids;
}

// get friends array
$users_friends = flag_friend_get_friends($user->uid);

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

return $users_friends_ids;
}

现在在您的模板中,您可以在任意多个地方调用 mymodule_get_friends_ids(),并且第一个返回下面的工作代码只会在第一次调用时执行。

关于php - Drupal - 如何使数组可全局访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5696902/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com