Vous connaissez l’expression « Chercher une aiguille dans une meule de foin » ? Figurez-vous qu’elle existe aussi en anglais « To search a needle in a haystack » ! Et vu que ça peut se traduire mot à mot, je soupçonne nos amis anglais de nous l’avoir piqué… Oui, c’est gratuit 😉
Mais saviez-vous que cette expression existe aussi en PHP ?
Prenons l’exemple de la fonction in_array
qui permet de vérifier l’existence d’un élément dans un tableau.
$haystack = array('cow', 'duck', 'pig'); $needle = 'cow'; if (in_array($needle, $haystack)) { echo 'Oh yeah!'; } else { echo 'What?'; }
Et c’est la documentation PHP officielle qui utilise « needle » et « haystack » comme nom de variables !
bool in_array( mixed $needle , array $haystack)
Il faut dire que cela correspond vraiment à l’expression 🙂
Là où le bas blesse (ahah !), ce que plusieurs fonctions PHP font leur pis aller de cette métaphore, mais pas toutes dans le même ordre !
Chercher une aiguille dans une meule de foin : les fonctions ayant traits aux array
in_array($needle, $haystack)
: vérifier que $needle existearray_search($needle, $haystack)
: vérifier que $needle existe, et retourne sa clé
Dans une meule de foin, chercher une aiguille : les fonction ayant traits aux string
strstr($haystack, $needle)
: première occurrence de $needle dans une stringstrchr($haystack, $needle)
: dernière occurrence du caractère $needle dans une stringstrpos / strrpos($haystack, $needle)
: position de la première / dernière occurrence de $needle dans une stringsubstr_count($haystack, $needle)
: nombre d’occurrences de $needle dans une string
Une expression, un « fun-fact » et un « tips », tout ça dans le même billet !