(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.
dizgeGirilen 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)