Yine uzun bir aradan sonra tekrar merhaba. Daha önceki yazılarımda da demiştim php nin fonksiyonlar topluluğu olduğunu ve bazen görmüşüzdür ki aynı işi yapan farklı fonksiyonlar var. Fakat şunu unutmamalıyız ki hepsinin birbirinden ufakta olsa bir farkı bulunmaktadır.
Bu yazımda php kodlarken sıklıkla kullandığımız explode ile split fonksiyonları arasındaki farka değineceğim. Aslında ikisi de bir veri kümesini belirttiğimiz ayraç ile metni böler. Fakat split fonksiyonu explode ye göre ek bir özelliği daha var o da ayrıyeten regex pattern kullanabilmemizdir.
Hemen yazımızı örnekleyelim. İlk örneğimiz explode fonksiyonu ile olacaktır.
$string = '01/01/1970'; $array = explode('/',$string); print_r($array);
örneği çalıştırdığımız da ekrana şu şekilde bir çıktı verecektir.
Array ( [0] => 01 [1] => 01 [2] => 1970 )
evet explode kenidisine belirtilen ayrac ile stringimizi bölüp $array adlı değişkenimize dizi olarak döndü. Aynı şeyi şimdi regex pattern olarak denersek nasıl bir sonuç döncek ona bakalım şimdide.
$string = "01/01/1970"; $pattern = "[\/]"; $array = explode($pattern,$string); print_r($array);
Bu betiği alıp çalıştırdığınız da ise explode’ nin regex uyumlu olmadığını görüp veriyi de bölmeyip yine bize bir bütün olarak sunduğunu göreceksiniz. Bunun çıktısı da aşağıdaki gibi olacaktır.
Array ( [0] => 01/01/1970 )
Şimdi ise aynı örneklerin split fonksiyonu ile yapılmış hallerine bakalım.
$string = '01/01/1970'; $array = split('/',$string); print_r($array);
Bu betik çalıştırıldığında explode ile aynı görevi görüp stringimizi / lardan bölüp dizi olarak bize dönecektir. Çıktısı aşağıdaki gibi olacaktır.
Array ( [0] => 01 [1] => 01 [2] =>1970 )
Şimdi ise explode ile kullandığımız ikinci örneğimizi split kullanarak yapalım ve çıktımıza bakalım.
$string = "01/01/1970"; $pattern = "[\/]"; $array = split($pattern,$string); print_r($array);
Bu betik çalıştırıldığında sonuç yine değişmeyecek ve kendisine verilen regex pattern e göre stringi bölüp dizi değer olarak bize döndürecektir. Bu örneğin çıktısı ise aşağıdaki gibi olacaktır.
Array ( [0] =>01 [1] => 01 [2] => 1970 )
Evet aradaki farkı galiba anladık. Bu kadar laf salatasından sonra konunun özüne inmek gerekirse explode fonksiyonu kendisine verilen ayracı baz alarak böler ve değer döndürür. Split ise hem ayrac a göre böler hemde regex pattern e göre bölüp sonucu dizi olarak değer döndürür.

teşekkürler ama daha sık yazmalsın siten daima güncel olmalı:)
işten vakit buldukça
Devamlı bu tür dökümanlr yazarsan sitene ziyaret eden cogalır
Güzel makale olmuş. Eline emeğine sağlık kardeşim.