I have a function which gets some values from Google analytics and prints them to the screen. I need to use these values later on in the file. When i try to assign these values to a variable it is null but the print is displaying the values correctly. An example of the values being printed is 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]. ", ";
}
}
}
So the vaules correctly display using the print but when i try to echo the variable $anna outside of the function it does not.
Ok so after looking at the solution from Don't Panic it became obvious that the variable just needed to be returned. Who would have thought it :) Thanks for the help!
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;
}
I would suggest a different approach. It looks like your function gets all the values from a set of metrics that each contains a set of values, and prints them. If you need to use the set of values, then your function that directly prints them isn't as useful. Make a function that just gets the values and returns them in an array. Be sure to return
them!
function getAllValues($metrics) {
foreach ($metrics as $metric) {
foreach ($metric->getValues() as $value) {
$allValues[] = $value;
}
}
return $allValues;
}
I'm assuming the $reports
argument in the example in your question is supposed to be $metrics
.
Then, you can call this function to get your values.
$values = getAllValues($metrics);
And if you need to print them, just
echo implode(', ', $values);
That way your function does what it says it does.
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments