我有一个功能可以从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;
}
答案 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);
这样你的功能就像它所说的那样。