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

Petit nouveau ! | 1 Messages

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 !

Mammouth du PHP | 1967 Messages

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.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube