返回函数外的值

时间:2018-03-09 18:20:24

标签: php google-analytics

我有一个功能可以从Google分析中获取一些值并将它们打印到屏幕上。我需要稍后在文件中使用这些值。当我尝试将这些值分配给变量时,它为null,但打印正确显示值。打印值的一个示例是 3188,2530,2475,1340,2184。

  function printResults($reports){
global $anna;
for ($j = 0; $j < count($metrics); $j++) {
              $values = $metrics[$j]->getValues();
              for ($k = 0; $k < count($values); $k++) {
                  $entry = $metricHeaders[$k];
                  print($values[$k] . ", ");
                  $anna.=$values[$k]. ", ";
              }
          }
}

所以vaules使用print正确显示但是当我尝试在函数之外回显变量$ anna时它没有。

好的,看了Don's Panic的解决方案后,显然需要返回变量。谁会想到:)谢谢你的帮助!

for ($j = 0; $j < count($metrics); $j++) {
              $values = $metrics[$j]->getValues();
              for ($k = 0; $k < count($values); $k++) {
                  $entry = $metricHeaders[$k];
                  //print($values[$k] . ", ");
                  $anna.=$values[$k]. ", ";
                  return $anna;
              }

1 个答案:

答案 0 :(得分:2)

我建议采用不同的方法。看起来您的函数从一组度量中获取所有值,每个度量包含一组值,并打印它们。如果需要使用这组值,那么直接打印它们的函数就不那么有用了。创建一个只获取值并将其返回到数组中的函数。 请务必return他们!

function getAllValues($metrics) {
    foreach ($metrics as $metric) {
        foreach ($metric->getValues() as $value) {
            $allValues[] = $value;
        }
    }
    return $allValues;
}

我假设您问题中示例中的$reports参数应为$metrics

然后,您可以调用此函数来获取您的值。

$values = getAllValues($metrics);

如果你需要打印它们,只需

echo implode(', ', $values);

这样你的功能就像它所说的那样。