T: / Articles techniques / PHP
Avec PHP 8, 3 fonctions ont fait leur apparition pour réaliser ces opérations de façon beaucoup plus naturelle.
Si vous avez déjà manipulé des chaines de caractères en PHP, vous avez forcément utilisé à un moment les fonctions substr ou strpos.
Ces fonctions étaient souvent utilisées pour deux choses :
Exemple :
$chaine = 'DEBUT_MILIEU_FIN';
// substr
if (substr($chaine, 0, 5) === 'DEBUT') {
echo 'DEBUT est au début.';
}
if (substr($chaine, strlen($chaine) - 3, 3) === 'FIN') {
echo 'FIN est à la fin.';
}
// Ou encore
if (substr($chaine, -3) === 'FIN') {
echo 'FIN est à la fin.';
}
// strpos
// Avec l'obligation d'utiliser une comparaison stricte
if (strpos($chaine, 'MILIEU') !== false) {
echo 'MILIEU est dans la chaine';
}
// Si j'oublie ma comparaison stricte
if (strpos($chaine, 'DEBUT') != false) {
echo 'DEBUT est au début.'; // N'est pas affiché
}
Avec PHP 8, 3 fonctions ont fait leur apparition pour réaliser ces opérations de façon beaucoup plus naturelle.
if (str_starts_with($chaine, 'DEBUT')) {
echo 'DEBUT est au début.';
}
if (str_ends_with($chaine, 'FIN')) {
echo 'FIN est à la fin.';
}
if (str_contains($chaine, 'MILIEU')) {
echo 'MILIEU est dans la chaine';
}
Fini de manipuler des index avec substr.
Fini de devoir utiliser une comparaison stricte car la fonction strpos a 2 types de retour différents.
On a des fonctions qui sont mieux nommées, donc plus explicites, avec un rôle bien défini.
Ces fonctions sont sensibles à la casse :
str_contains($chaine, 'milieu'); // false
Si on recherche le caractère vide, alors ces 3 fonctions retourne true :
str_contains($chaine, ''); // true
str_ends_with($chaine, ''); // true
str_starts_with($chaine, ''); // true
Les fonctions substr et str(i)pos conservent leur utilité pour des cas d’usage différents.
Other content to discover
Corrections, challenges, news, technical monitoring... no spam.