我是新手,需要有关如何解决简单问题的指导。
我正在使用 PHP 构建一个应用程序,以支持 Fantasy Premier League (FPL) 球队数据的不同 View 。我从 API(JSON 数组)中提取数据,循环遍历它,并将其存储在数据库中。其中一个 API 调用需要一个 team_id
来拉取该球队各自的球员。
我最初的想法是编写一个函数,将team_id
作为参数,然后解析数据以插入到数据库中。但是,如何将 12 个不同的 team_id 中的每一个传递给要处理的函数,而不为每个 team_id 重复该函数 12 次?
所以,我可能会:
$team_id_1 = 1;
$team_id_2 = 2;
$team_id_3 = 3;
etc...
那么我的功能可能是:
function insert_team_data($team_id) {
$fplUrl = 'https://fantasy.premierleague.com/api/entry/' . $team_id . '/event/29/picks/';
foreach ($team_data as $key => $value) {
# code...
}
$sql = "INSERT INTO ..."
}
是否可以通过在单个进程中将每个 team_id
迭代传递给函数的方式来构造此函数(即,无需为每个 team_id
重复函数代码) ?我是否可以创建一个 team_id
数组,并让函数循环遍历每个数组,然后循环遍历每个结果团队的数据?
最佳答案
是的,您可以执行以下任一操作:使用数组或可变参数函数。
您正在考虑的方式就是所谓的 variadic function或变长函数。
它可以通过使用 func_get_args()
或 splat
运算符来实现,后者处理参数打包/解包。
这是一个例子。
function insert_team_data(... $team_ids) {
// $team_ids will appear as an array in your function
foreach ($team_ids as $team_id) {
$fplUrl = "https://fantasy.premierleague.com/api/entry/$team_id/event/29/picks/";
$sql = "INSERT INTO ..."
// rest of code...
}
}
您现在可以像这样调用该函数:insert_team_data(1, 2, 3, 4, 5)
关于php - 在单个 PHP 函数中处理多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61037257/