gpt4 book ai didi

php - 将函数结果存储到变量以供以后在 PHP 中使用?

转载 作者:行者123 更新时间:2023-12-05 01:46:01 25 4
gpt4 key购买 nike

考虑到我使用 PHP 的时间,我为问这个问题感到羞耻,但现在我似乎太累了,无法自己解决。

我有一个 php 变量函数,它获取一个 CSV 文件并将数据存储到一个数组中。

$csvdata = function(){
// Get CSV data to array
return $array;
}

这个数组在不同情况下被其他函数使用。

问题是我虽然这个函数只会运行一次,但我只是注意到每次我使用 var $csvdata 时它都会运行。

我想要的是创建一个只运行一次的自激发函数,并将数据存储到一个数组中,我可以根据需要多次使用该数组,而无需 PHP 每次都重新执行获取 csv 和存储数据的过程我使用 $csvdata。

这真的很奇怪,因为我觉得如果我的大脑在跟我开玩笑......(大脑:“很明显......我知道答案但我不会告诉你”)

对不起 friend

最佳答案

您可以使用 call_user_func 即时调用新创建的函数:

$csvdata = call_user_func(function(){
// Get CSV data to array
return $array;
});

然后只需将 $csvdata 作为变量引用(不带括号)。

说明

文档将 call_user_func 的参数称为回调,这就是它的含义:您将函数引用传递给它,它是 call_user_func 的实现为你调用你的函数(“给你回电话”)。函数引用可以是内联的匿名函数(如上)。

但也可以是代表函数的变量:

$func = function(){
// Get CSV data to array
return $array;
};
$csvdata = call_user_func($func);

或者,它可以是一个字符串,其中包含函数的名称:

function myFunc(){
// Get CSV data to array
return $array;
};
$csvdata = call_user_func('myFunc');

所有这些都做同样的事情:你的函数被调用。您甚至可以告诉 call_user_func 将哪些参数传递给您的函数:

function myFunc($arg){
echo $arg;
// Get CSV data to array
return $array;
};
$csvdata = call_user_func('myFunc', 'hello');

以上将回显“你好”。

我提供这些变体仅供引用,因为您对内联函数参数感兴趣。然后你也可以传递参数:

$csvdata = call_user_func(function($arg1, $arg2){
echo $arg1 . "," . $arg2;
// Get CSV data to array
return $array;
}, 'hello', 'there');

关于php - 将函数结果存储到变量以供以后在 PHP 中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38409661/

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