带API的PHP函数有多少个请求?

带API的PHP函数有多少个请求?,php,function,api,loops,request,Php,Function,Api,Loops,Request,我有以下函数,它从API URL请求数据。我想知道,如果我用不同的参数调用函数5次,这等于对API?的5个请求 如果这是真的,我想避免“太多的请求”。我想把文件\u get\u contents(),json\u decode()和$url放在函数外部,这样我就可以从url请求一次数据,但我必须在函数中声明变量为globals,我发现这是一种糟糕的方法 function apiReq($type, $day){ $url2 = "http://api.example.com/../..

我有以下
函数
,它从API URL请求数据。我想知道,如果我用不同的参数调用函数5次,这等于对API?的5个请求

如果这是真的,我想避免“太多的请求”。我想把
文件\u get\u contents()
json\u decode()
$url
放在函数外部,这样我就可以从url请求一次数据,但我必须在
函数中声明变量为
globals
,我发现这是一种糟糕的方法

function apiReq($type, $day){

    $url2 = "http://api.example.com/../.../../";

    $str2 = file_get_contents($url2);

    $decode_two = json_decode($str2, TRUE);

    foreach($decode_two['teams'][$type][$day] as $item ) {
        if (isset($item['name']['initial'])) {
            echo $item['name']['initial'];
        }
        echo $item['name']['surname'];
        echo $item['shirt'];
        echo '</br>';
    }
}

apiReq('A', 'Monday');

apiReq('B', 'Tuesday');

echo '</br>';

apiReq('C', 'Monday');

apiReq('D', 'Tuesday');

apiReq('F', 'Friday');
函数apiReq($type,$day){
$url2=”http://api.example.com/../.../../";
$str2=文件获取内容($url2);
$decode\u two=json\u decode($str2,TRUE);
foreach($decode_两个['teams'][$type][$day]作为$item){
如果(isset($item['name']['initial'])){
echo$item['name']['initial'];
}
echo$item['name']['name'];
echo$item['shirt'];
回音“
”; } } apiReq(“A”、“星期一”); apiReq(“B”,“星期二”); 回音“
”; apiReq(“C”,“星期一”); apiReq(“D”,“星期二”); apiReq(“F”、“星期五”);
避免“太多请求”的最佳方法是什么


谢谢您

传递一个数组,该数组存储类似于
[[“type”=>$type,“day”=>$day]]]
的内容,而不是调用函数5次,因为您每次都请求相同的URL,所以您可以在该数组上循环

例如:

// Get an array as parameter
//                    |
//                    V
function apiReq($TypesAndDays){

    $url2 = "http://api.example.com/../.../../";

    $str2 = file_get_contents($url2);

    $decode_two = json_decode($str2, TRUE);

    // Loop over that array
    foreach ($TypesAndDays as $TypeAndDay)
    {
        // set $type and $day
        $type = $TypeAndDay['type'];
        $day = $TypeAndDay['day'];

        // the rest of your code remains unchanged
        foreach($decode_two['teams'][$type][$day] as $item ) {
            if (isset($item['name']['initial'])) {
                echo $item['name']['initial'];
            }
            echo $item['name']['surname'];
            echo $item['shirt'];
            echo '</br>';
        }
    }
}

$TypesAndDays = [
    [ 'type' => 'A', 'day' => 'Monday' ],
    [ 'type' => 'B', 'day' => 'Tuesday' ],
    [ 'type' => 'C', 'day' => 'Monday' ],
    [ 'type' => 'D', 'day' => 'Tuesday' ],
    [ 'type' => 'F', 'day' => 'Friday' ]
];

apiReq($TypesAndDays);
//获取数组作为参数
//                    |
//五
函数apiReq($TypesAndDays){
$url2=”http://api.example.com/../.../../";
$str2=文件获取内容($url2);
$decode\u two=json\u decode($str2,TRUE);
//在那个数组上循环
foreach($TypesAndDays作为$TypeAndDay)
{
//设置$type和$day
$type=$TypeAndDay['type'];
$day=$TypeAndDay['day'];
//代码的其余部分保持不变
foreach($decode_两个['teams'][$type][$day]作为$item){
如果(isset($item['name']['initial'])){
echo$item['name']['initial'];
}
echo$item['name']['name'];
echo$item['shirt'];
回音“
”; } } } $typesandday=[ ['type'=>'A','day'=>'Monday'], ['键入'=>'B','日期'=>'星期二'], ['type'=>'C','day'=>'Monday'], ['type'=>'D','day'=>'sunday'], ['键入'=>'F','日期'=>'星期五'] ]; apiReq($TypesAndDays);
传递一个数组,该数组存储类似于
[[“type”=>$type,“day”=>$day]]]
的内容,而不是调用函数5次,因为您每次都请求相同的URL,所以可以在该数组上循环

例如:

// Get an array as parameter
//                    |
//                    V
function apiReq($TypesAndDays){

    $url2 = "http://api.example.com/../.../../";

    $str2 = file_get_contents($url2);

    $decode_two = json_decode($str2, TRUE);

    // Loop over that array
    foreach ($TypesAndDays as $TypeAndDay)
    {
        // set $type and $day
        $type = $TypeAndDay['type'];
        $day = $TypeAndDay['day'];

        // the rest of your code remains unchanged
        foreach($decode_two['teams'][$type][$day] as $item ) {
            if (isset($item['name']['initial'])) {
                echo $item['name']['initial'];
            }
            echo $item['name']['surname'];
            echo $item['shirt'];
            echo '</br>';
        }
    }
}

$TypesAndDays = [
    [ 'type' => 'A', 'day' => 'Monday' ],
    [ 'type' => 'B', 'day' => 'Tuesday' ],
    [ 'type' => 'C', 'day' => 'Monday' ],
    [ 'type' => 'D', 'day' => 'Tuesday' ],
    [ 'type' => 'F', 'day' => 'Friday' ]
];

apiReq($TypesAndDays);
//获取数组作为参数
//                    |
//五
函数apiReq($TypesAndDays){
$url2=”http://api.example.com/../.../../";
$str2=文件获取内容($url2);
$decode\u two=json\u decode($str2,TRUE);
//在那个数组上循环
foreach($TypesAndDays作为$TypeAndDay)
{
//设置$type和$day
$type=$TypeAndDay['type'];
$day=$TypeAndDay['day'];
//代码的其余部分保持不变
foreach($decode_两个['teams'][$type][$day]作为$item){
如果(isset($item['name']['initial'])){
echo$item['name']['initial'];
}
echo$item['name']['name'];
echo$item['shirt'];
回音“
”; } } } $typesandday=[ ['type'=>'A','day'=>'Monday'], ['键入'=>'B','日期'=>'星期二'], ['type'=>'C','day'=>'Monday'], ['type'=>'D','day'=>'sunday'], ['键入'=>'F','日期'=>'星期五'] ]; apiReq($TypesAndDays);
api中的数据是否会因每个不同的请求而改变?如果是,则使用
$type
$day
的不同参数可以进行多少种可能的数据组合?感谢您的回复。数据每周更改五次,有许多可能的组合可用。有从A、B、C到K的类型和从星期一到星期六的日期。所有这些都是可能的组合。如果不同的用户访问存储的数据副本,是否会有隐私问题,或者本质上是无害的?从理论上讲,您可以为每个用户保存数据的每日副本$type@RamRaider我认为不会有任何关于隐私的问题,因为数据不是机密的。困扰我的是请求,我想避免提出很多请求,因为有很多组合。第二个想法是首先将数据存储在另一个数据库上,然后从那里提取数据。如果每天和5天都有A-K个可能的
$types
,那么这是否等于每周最多55个可能的组合?api中的数据是否会因每个不同的请求而变化?如果是,则使用
$type
$day
的不同参数可以进行多少种可能的数据组合?感谢您的回复。数据每周更改五次,有许多可能的组合可用。有从A、B、C到K的类型和从星期一到星期六的日期。所有这些都是可能的组合。如果不同的用户访问存储的数据副本,是否会有隐私问题,或者本质上是无害的?从理论上讲,您可以为每个用户保存数据的每日副本$type@RamRaider我认为不会有任何关于隐私的问题,因为数据不是机密的。困扰我的是请求,我想避免提出很多请求,因为有很多组合。第二个想法是首先将数据存储在另一个数据库中,然后从那里提取数据。如果每天有A-K个可能的
$types
,并且有5个可能的天,那么这是否等于每周最多55个可能的组合?谢谢回答。有趣的方法,我想知道每次函数