(PHP 4, PHP 5, PHP 7, PHP 8)
substr — Dizgenin bir kısmını döndürür
dizge
'nin başlangıç
'tan
itibaren uzunluk
uzunluğunda parçasını döndürür.
dizge
Girilen dizge.
başlangıç
Eğer başlangıç
bağımsız değişkeni negatif değilse
geri dönen dizge değeri, dizge
'nin 0'dan itibaren
başlangıç
'ıncı konumundan başlar. Mesela,
'abcdef
' dizgesinde, 0
'ıncı
konumdaki karakter 'a
', 2
'inci
konumdaki karakter 'c
'dir.
Eğer başlangıç
bağımsız değişkeni negatif ise, dönen
dizge değeri dizge
'nin sonundan
başlangıç
karakter önce başlar.
Eğer dizge
uzunluğu
başlangıç
dizgesinin uzunluğundan küçükse
işlev boş dizge döndürür.
Örnek 1 - Negatif başlangıç
kullanımı
<?php
$rest = substr("abcdef", -1); // "f" döndürür
$rest = substr("abcdef", -2); // "ef" döndürür
$rest = substr("abcdef", -3, 1); // "d" döndürür
?>
uzunluk
Eğer uzunluk
bağımsız değişkeni verildiyse ve pozitifse
dönen dizge, dizge
'nin uzunluğuna göre
başlangıç
'tan itibaren
uzunluk
'ta belirtilen karakter sayısı kadar
karakter içerir.
Eğer uzunluk
bağımsız değişkeni verildiyse ve
negatifse dizge
'nin sonundan belirtilen kadar
karakter çıkartılır (başlangıç
negatif ise önce
başlagıç konumu hesaplanır). Eğer başlangıç
bağımsız değişkeni negatif uzunlukla çıkarılan parçanın içindeki bir yeri
işaret ediyorsa boş dizge döner.
uzunluk
belirtilmiş ve 0
ise
boş bir dizge döner.
uzunluk
atlanırsa veya null
ise,
başlangıç
'tan başlayarak dizenin sonuna kadar
olan alt dizge döndürülür.
Örnek 2 - Negatif uzunluk
kullanımı
<?php
$rest = substr("abcdef", 0, -1); // "abcde" döndürür
$rest = substr("abcdef", 2, -1); // "cde" döndürür
$rest = substr("abcdef", 4, -4); // "" döndürür; PHP 8.0.0 öncesinde false dönerdi
$rest = substr("abcdef", -3, -1); // "de" döndürür
?>
dizge
'nin çıkarılan kısmı ya da boş dizge döner.
Sürüm: | Açıklama |
---|---|
8.0.0 |
uzunluk artık null olabiliyor.
uzunluk bağımsız değişkenine açıkça null atanmışsa
dizgenin sonunda biten bir alt dizge döner, evvelce bu durumda boş
dizge dönerdi.
|
8.0.0 |
İşlev evvelce false döndürdüğü durumda şimdi boş bir dizge döndürüyor.
|
Örnek 3 - Basit substr() kullanımı
<?php
echo substr('abcdef', 1); // bcdef
echo substr("abcdef", 1, null); // bcdef; PHP 8.0.0 öncesinde, boş dizge dönerdi
echo substr('abcdef', 1, 3); // bcd
echo substr('abcdef', 0, 4); // abcd
echo substr('abcdef', 0, 8); // abcdef
echo substr('abcdef', -1, 1); // f
// Dizge içerisindeki tek bir karaktere ulaşmak için
// "köşeli ayraçlar" da kullanılabilir.
$dizge = 'abcdef';
echo $dizge[0]; // a
echo $dizge[3]; // d
echo $dizge[strlen($dizge)-1]; // f
?>
Örnek 4 - substr() tür dönüşüm davranışı
<?php
class apple {
public function __toString() {
return "green";
}
}
echo "1) ".var_export(substr("pear", 0, 2), true).PHP_EOL;
echo "2) ".var_export(substr(54321, 0, 2), true).PHP_EOL;
echo "3) ".var_export(substr(new apple(), 0, 2), true).PHP_EOL;
echo "4) ".var_export(substr(true, 0, 1), true).PHP_EOL;
echo "5) ".var_export(substr(false, 0, 1), true).PHP_EOL;
echo "6) ".var_export(substr("", 0, 1), true).PHP_EOL;
echo "7) ".var_export(substr(1.2e3, 0, 4), true).PHP_EOL;
?>
Yukarıdaki örneğin çıktısı:
1) 'pe' 2) '54' 3) 'gr' 4) '1' 5) '' 6) '' 7) '1200'
Örnek 5 - Geçersiz karakter aralığı
Geçersiz bir karakter aralığı istenmişse, substr()
PHP 8.0.0 ve sonrasına boş dizge döndürüyor, evvelce false
döndürürdü.
<?php
var_dump(substr('a', 2));
?>
Yukarıdaki örneğin PHP 8 çıktısı:
string(0) ""
Yukarıdaki örneğin PHP 7 çıktısı:
bool(false)