Passage de PHP 7.4 à PHP 8 : problème avec array_intersect

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Passage de PHP 7.4 à PHP 8 : problème avec array_intersect

Re: Passage de PHP 7.4 à PHP 8 : problème avec array_intersect

par Spols » 06 janv. 2023, 10:48

Hello,

La doc php de call_user_func_array t'apportera toute les réponses
Liste de paramètres ¶
callback
La fonction de rappel à appeler.

args
Les paramètres à passer à la fonction de rappel, sous la forme d'un tableau indexé.

Valeurs de retour ¶
Retourne la valeur retournée par la fonction de rappel, ou false si une erreur survient.

Historique ¶
Version Description
8.0.0 Les clés args seront désormais interprétées comme des noms de paramètres, au lieu d'être ignorées silencieusement.

Passage de PHP 7.4 à PHP 8 : problème avec array_intersect

par dubois » 06 janv. 2023, 01:59

Bonsoir,
Après un passage de PHP 7.4 à PHP 8, j’ai une interrogation au sujet de array_intersect.
J’ai remarqué que le script plante au niveau du code
call_user_func_array('array_intersect', $toto);
En faisant quelques recherches, je suis tombé sur la page https://www.drupal.org/project/splide/issues/3262982, qui suggère de placer
$toto
dans
array_values()
. Du coup, ça marche.
Toutefois, j’aimerais que l’on m’explique pourquoi, dans un autre script, je n’ai pas d’erreur avec :
array_intersect($haystack, $target)
Dois-je en conclure que c’est
call_user_func_array
qui impose l’utilisation de
array_values()
?
Merci !