/ / Fonctions anonymes en PHP - php

Fonctions anonymes en PHP - php

Je suis en train de développer un grattoir Web pour Android Play Store en PHP et j'ai quelques problèmes. C'est la fonction que j'utilise pour obtenir les commentaires de l'application:

function reviews($url_to_crawl , $crawler)  {
$reviews_contents = array();
if (num_reviews($url_to_crawl, $crawler)) {
$crawler->filter(".review-body")->each(function(SymfonyComponentDomCrawlerCrawler $node, $i) use ($reviews_contents) {
$reviews_contents[$i] = trim($node->text());
});
}
return $reviews_contents;
}

à présent $reviews_contents est vide, je suppose parce que j'utilise une fonction anonyme. Y a-t-il une autre façon de faire cela?

Réponses:

2 pour la réponse № 1

Vous devez passer la variable $reviews_contents par référence dans le use comme ça

function(SymfonyComponentDomCrawlerCrawler $node, $i) use (&$reviews_contents)

2 pour la réponse № 2

Car use dans les fonctions anonymes, transmet les variables par valeur plutôt que par référence. Vous voulez une référence pour pouvoir modifier la variable et conserver ces modifications après l'appel de la fonction.

function (SymfonyComponentDomCrawlerCrawler $node, $i) use (&$reviews_contents) {
// modifications to `$reviews_contents` will stick around because it"s now
// a reference, not passed by value
}

1 pour la réponse № 3

Essayez de mettre & before $ reviews_contents comme ci-dessous pour obtenir une référence à cette variable ...

use (&$reviews_contents)