ti-enxame.com

Qual é a diferença entre split () e explode ()?

O manual PHP para split() diz

Esta função tem sidoDEPRECATEDa partir de PHP 5.3.0. Confiar nessa característica é altamente desencorajado ... Use explode() em vez disso.

Mas não consigo encontrar uma diferença entre split() e explode(). join() não foi descontinuado, então o que dá?

32
Theodore R. Smith

Está sendo reprovado porque

  • explode() é substancialmente mais rápido porque não é dividido com base em uma expressão regular, portanto, a string não precisa ser analisada pelo interpretador de expressões regulares
  • preg_split() é mais rápido e usa expressões regulares de PCRE para splits de regex

join() e implode() são aliases uns dos outros e, portanto, não possuem diferenças.

51
BoltClock

split usa regex, enquanto explode usa uma string fixa. Se você precisa de regex, use preg_split , que usa o PCRE (o pacote regex agora é preferido em toda a biblioteca padrão PHP).

4
Matthew Flaschen

Ambas as funções são usadas para dividir uma string. 

No entanto, o Split é usado para dividir uma string usando uma expressão regular. 

Por outro lado, Explode é usado para dividir uma string usando outra string.

E.g explode ("this", "isto é uma string"); retornará “ é uma string

E.g Split ("+", "Este + é uma string"); 

1
user386431

A função split() divide a string em um array usando uma expressão regular e retorna um array.

A função explode() divide a string por string.

Por exemplo:

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

O resultado será

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

Em split() você pode usar expressões regulares para dividir uma string. Considerando que explode() divide uma string com uma string. preg_split é uma alternativa muito mais rápida, se você precisar de expressões regulares.

1
Russell Dias

Ambos são usados ​​para dividir uma string em uma matriz, mas a diferença é que split() usa o padrão para dividir, enquanto que explode() usa a string. explode() é mais rápido que split() porque não corresponde à string com base na expressão regular.

0
Sampath