web-dev-qa-db-fra.com

Quelle est la différence entre split () et explode ()?

Le manuel PHP pour split() dit

Cette fonction a été OBSOLÈTE en tant que de PHP 5.3.0. S'appuyant sur cette fonctionnalité est fortement déconseillé ... Utilisez explode() au lieu.

Mais je ne trouve pas de différence entre split() et explode(). join() n'est pas obsolète, alors que donne-t-il?

32
Theodore R. Smith

Il est déconseillé parce que

  • explode() est considérablement plus rapide car il ne se scinde pas en fonction d'une expression régulière, il n'est donc pas nécessaire que la chaîne soit analysée par l'analyseur de regex
  • preg_split() est plus rapide et utilise des expressions régulières PCRE pour les scissions de regex

join() et implode() sont des alias l'un de l'autre et n'ont donc aucune différence.

51
BoltClock

split utilise regex, alors que explode utilise une chaîne fixe. Si vous avez besoin de regex, utilisez preg_split , qui utilise PCRE (le paquetage regex est désormais préféré dans la bibliothèque standard PHP).

4
Matthew Flaschen

Les deux fonctions sont utilisées pour diviser une chaîne. 

Cependant, Split est utilisé pour scinder une chaîne à l'aide d'une expression régulière. 

D'autre part, Explode est utilisé pour scinder une chaîne en utilisant une autre chaîne.

E.g explode ("this", "ceci est une chaîne"); retournera " Est une chaîne "

E.g Split ("+", "This + est une chaîne"); 

1
user386431

La fonction split() divise la chaîne en un tableau à l'aide d'une expression régulière et renvoie un tableau.

La fonction explode() divise la chaîne en chaîne.

Par exemple:

<?php
    $split_array=split(':','I:P:S');
    $explode_array=split('and','I and P and S');
    print_r($split_array);
    print_r($explode_array);
?>

Le résultat sera

Array ( [0] => I [1] => P [2] => S ) 
Array ( [0] => I [1] => P [2] => S )
1
rohini shinde

Dans split(), vous pouvez utiliser des expressions régulières pour scinder une chaîne. Alors que explode() divise une chaîne avec une chaîne . preg_split est une alternative beaucoup plus rapide, si vous avez besoin d’expressions régulières.

1
Russell Dias

Les deux sont utilisés pour diviser une chaîne en un tableau, mais la différence est que split() utilise un modèle pour la division, alors que explode() utilise une chaîne. explode() est plus rapide que split() car il ne correspond pas à une chaîne basée sur une expression régulière.

0
Sampath