I can not add return jsonArray

0

I have a following problem:

function send_notification(){
$jsonArray = json_decode($result);
$cont_sucesso +=  $jsonArray->success;
$cont_falha   +=  $jsonArray->failure;
}

for ($i = 0; $i < $num / 1000; $i++) {
 $Status = send_notification();
.....
}
console.log($cont_sucesso); 
echo("Total SUCESSO: ".$cont_sucesso);
echo("</br>");
echo("Total FALHAS: " .$cont_falha);
echo("</br>");
echo "Total de mensagens enviadas: ".$cont; 

I can not add the value of $jsonArray->success; I have a loop and inside that loop I call function that returns jsonArray But I need to add his return to display at the end of the loop, where am I wrong?

Edit: Json

{"multicast_id":5985558851077455261,"success":254,"failure":746,"canonical_ids":0,"results":[{"error":"NotRegistered"},{"message_id":"0:1478517570268212%f17b55e1f9fd7ecd"}]}
    
asked by anonymous 17.11.2016 / 18:27

1 answer

1

Your problem is variant scopes .

function send_notification(){
$jsonArray = json_decode($result);
$cont_sucesso +=  $jsonArray->success; //esta é a variavel dentro do escopo da func send_notification()
$cont_falha   +=  $jsonArray->failure;
}

for ($i = 0; $i < $num / 1000; $i++) {
 $Status = send_notification();
.....
}
console.log($cont_sucesso); 
echo("Total SUCESSO: ".$cont_sucesso); //esta é OUTRA variavel no escopo local (fora da send_notification())
echo("</br>");
echo("Total FALHAS: " .$cont_falha);
echo("</br>");
echo "Total de mensagens enviadas: ".$cont; 

I tested the link with the following code

$result = '{"multicast_id":5985558851077455261,"success":254,"failure":746,"canonical_ids":0,"results":[{"error":"NotRegistered"},{"message_id":"0:1478517570268212%f17b55e1f9fd7ecd"}]}';

function send_notification($result){
    global $cont_sucesso, $cont_falha ; //Agora estou setando as vars do escopo da função como global

    $jsonArray = json_decode($result);
    $cont_sucesso +=  $jsonArray->success;
    $cont_falha   +=  $jsonArray->failure;
}


$cont_sucesso =0;
$cont_falha =0;

for ($i = 0; $i < 10; $i++) {
 $Status = send_notification($result);
}
echo("Total SUCESSO: ".$cont_sucesso);
echo("</br>");
echo("Total FALHAS: " .$cont_falha);
echo("</br>");
    
17.11.2016 / 19:00