(PHP 4, PHP 5, PHP 7, PHP 8)
strtok — Dizgeyi bir dizgeciğe göre böler
İsimli bağımsız değişkenleri desteklemeyen diğer sözdizimi:
strtok() işlevi dizge
dizgesini ayraçlar
dizgesindeki karakterleri ayraç olarak kullanarak daha küçük dizgelere böler. Yani, "Bu örnek bir dizgedir" dizgesini boşluk karakterini ayraç olarak kullanarak sözcüklerine bölebilirsiniz.
Sadece ilk strtok() çağrısında dizge
bağımsız değişkeni belirtilir. Sonraki çağrılarda sadece ayraçlar
bağımsız değişkenini kullanmak yeterlidir. Baştan başlamak veya yeni dizgelerden birini ayrıştırmak için işlevi dizge
bağımsız değişkeni ile çağırmak işlemi ilklendirmek için yeterlidir. ayraçlar
bağımsız değişkenine birden fazla ayraç koyabilirsiniz. Belirtilen bu ayraçlardan birine ilk rastlandığıyla işlev dizgeyi böler.
Bilginize:
Bu işlev, explode() işlevine göre biraz farklı davranır. İlk olarak, ayrıştırılmış dizedeki iki veya daha fazla bitişik
ayraçlar
karakteri tek bir sınırlayıcı olarak kabul edilir. Ayrıca, dizenin başında veya sonunda bulunanayraçlar
yoksayılır. Örneğin,";aaa;;bbb;"
dizesinde,";"
ile strtok() işlevine yapılan art arda çağrılarda, önce "aaa" ve "bbb" dizeleri ve ardındanfalse
değeri döner. Sonuç olarak,explode(";", $string)
5 elemanlı bir dizi döndürürken burada sadece iki eleman döner.
dizge
Daha küçük parçalara bölünecek dizge.
ayraçlar
Dizgeyi bölmek için kullanılacak ayraçlardan oluşan dizge.
Bir dizge parçası veya dizgede ayraç kalmazsa false
döner.
Örnek 1 - strtok() örneği
<?php
$string = "This is\tan example\nstring";
$tok = strtok($string, " \n\t");
while ($tok !== false) {
echo "Word=$tok<br />";
$tok = strtok(" \n\t");
}
?>
Örnek 2 - Ayraçlar tükendiğinde strtok() davranışı
<?php
$dizge1 = strtok('/something', '/');
$dizge2 = strtok('/');
var_dump($dizge1, $dizge2);
?>
Yukarıdaki örneğin çıktısı:
string(9) "something" bool(false)
Örnek 3 - strtok() ile explode() arasındaki fark
<?php
$string = ";aaa;;bbb;";
$parts = [];
$tok = strtok($string, ";");
while ($tok !== false) {
$parts[] = $tok;
$tok = strtok(";");
}
echo json_encode($parts),"\n";
$parts = explode(";", $string);
echo json_encode($parts),"\n";
Yukarıdaki örneğin çıktısı:
["aaa","bbb"] ["","aaa","","bbb",""]
Bu işlev mantıksal false
değeriyle dönebileceği gibi false
olarak değerlendirilebilecek mantıksal olmayan bir değerle de dönebilir. Bu konuda daha fazla bilgi Mantıksal Değerler bölümünde bulunabilir. Bu işlevden dönen değeri sınamak için ===
işleci kullanılabilir.