array_search
renvoie l'index de l'élément dans le tableau. Dans ce cas, il retourne l'entier 0, qui, lorsqu'il est converti en booléen, est faux.
Si vous souhaitez lire la documentation, vous auriez vu ce qui suit dans une grande boîte rouge:
Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur non booléenne qui évalue à FALSE, tel que 0 ou "". Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour de cette fonction.
Vous devez utiliser:
if (array_search("image/gif", $allowedTypes) !== false) {
// ...
}
Ou, pour dire simplement si le tableau contient l'élément, vous pouvez utiliser in_array()
qui ne renvoie un simple oui/non sous forme booléenne:
if (in_array("image/gif", $allowedTypes)) {
// ...
}
i n_array() semble fonctionner. –