tags:

views:

102

answers:

4

The PHP manual for split() says

This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged...Use explode() instead.

But I can't find a difference between split() and explode(). join() hasn't been deprecated, so what gives?

+1  A: 

split uses regex, while explode uses a fixed string. If you do need regex, use preg_split, which uses PCRE (the regex package now preferred across the PHP standard library).

Matthew Flaschen
+12  A: 

It's been deprecated because

  • explode() is substantially faster because it doesn't split based on a regular expression, so the string doesn't have to be analyzed by the regex parser
  • preg_split() is faster and uses PCRE regular expressions for regex splits

join() and implode() are aliases of each other and therefore don't have any differences.

BoltClock
+1, that answers all of his questions.
codaddict
So they messed up when they named it, apparently? Sounds like it should have been called ereg_split().
hopeseekr
@hopeseekr: PHP always messes up naming of functions ;) And yeah, I guess you could say that!
BoltClock
+1  A: 

In split() you can use regular expressions to split a string. Whereas explode() splits a string with a string. preg_split is a much faster alternative, should you need regular expressions.

Russell Dias
A: 

Both the functions are used to Split a string.

However, Split is used to split a string using a regular expression.

On the other hand, Explode is used to split a string using another string.

E.g explode (" this", "this is a string"); will return “Is a string

E.g Split (" + ", "This+ is a string");

Wasim