代码之家  ›  专栏  ›  技术社区  ›  AKAust

返回函数外部的值

  •  0
  • AKAust  · 技术社区  · 7 年前

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

      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’t 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 回复  |  直到 7 年前
        1
  •  2
  •   Don't Panic    7 年前

    我会建议一种不同的方法。看起来您的函数从一组指标中获取所有值,每个指标都包含一组值,并将其打印出来。如果需要使用这组值,那么直接打印它们的函数就没有那么有用了。创建一个函数,只获取值并在数组中返回它们。 一定要 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);
    

    这样你的函数就可以做到它所说的。