(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
getopt — Komut satırı bağımsız değişkenleri listesinden seçenekleri döndürür
$kısa_seçenekler, array $uzun_seçenekler = [], int &$kalan_indisi = null): array|falseBetiğe aktarılan seçenekleri çözümler.
kısa_seçenekler
Bir dizge olup, dizgenin her karakteri bir seçenek karakteri olarak
kullanılır ve bu karakterlerle eşleşen seçenekler önlerine birer tire
imi (-) konarak betik çalıştırılırken komut
satırından belirtilebilir.
Örneğin, "x" seçenek dizgesi -x
seçeneğinin tanınmasını sağlar.
Sadece a-z, A-Z ve 0-9 karakterlerine izin verilir.
uzun_seçenekler
Bir dizi olup, dizinin her elemanı bir seçenek dizgesi olarak
kullanılır ve bu dizgelerle eşleşen seçenekler önlerine birer çift tire
imi (--) konarak betik çalıştırılırken komut
satırından belirtilebilir.
Örneğin, "opt" elemanı --opt
seçeneğinin tanınmasını sağlar.
kalan_indisi
kalan_indisi bağımsız değişkeni belirtilmişse,
bağımsız değişken çözümlemesinin durduğu indis bu değişkene yazılacaktır.
kısa_seçenekler bağımsız değişkeni şu bileşenleri
içerebilir:
Bilginize:
İsteğe bağlı değerler bir ayraç olarak
" "(boşluk) kabul etmezler.
uzun_seçenekler dizisinin içerebileceği değerler:
Bilginize:
kısa_seçeneklerveuzun_seçenekleriçin biçem hemen hemen aynıdır. Tek fark, birincisinin bir dizge (her karakter bir seçenek) ikincisinin bir dizi (her eleman bir seçenek) almasıdır.
Bağımsız değişken çiftlerini içeren bir dizi, başarısızlık durumunda false döner.
Bilginize:
Seçeneklerin çözümlenmesi seçenek olmayan ilk değerde durur, kalan herşey yok sayılır.
| Sürüm: | Açıklama |
|---|---|
| 7.1.0 |
kalan_indisi bağımsız değişkeni eklendi.
|
Örnek 1 - getopt() örneği - temeller
<?php
// Betik: example.php
$options = getopt("f:hp:");
var_dump($options);
?>shell> php example.php -fdeğer -h
Yukarıdaki örneğin çıktısı:
array(2) {
["f"]=>
string(5) "değer"
["h"]=>
bool(false)
}
Örnek 2 - getopt() ve uzun seçenekler
<?php
// Betik: betik.php
$kısalar = "";
$kısalar .= "f:"; // Değer, zorunlu
$kısalar .= "v::"; // Değer, seçimlik
$kısalar .= "abc"; // Bunlar değer kabul etmez
$uzunlar = array(
"gerekli:", // Değer, zorunlu
"seçimlik::", // Değer, seçimlik
"seçenek", // Değer kabul etmez
"sçnk", // Değer kabul etmez
);
$seçenekler = getopt($kısalar, $uzunlar);
var_dump($seçenekler);
?>shell> php betik.php -f "f değeri" -v -a --gerekli değer --seçimlik="seçimlik değer" --seçenek
Yukarıdaki örneğin çıktısı:
array(6) {
["f"]=>
string(9) "f değeri"
["v"]=>
bool(false)
["a"]=>
bool(false)
["gerekli"]=>
string(6) "değer"
["seçimlik"]=>
string(16) "seçimlik değer"
["seçenek"]=>
bool(false)
}
Örnek 3 - getopt() ve çoklu-tek seçenek
Çok sayıda seçeneğin tek bir seçenek olarak verilmesi:
<?php
// Betik: betik.php
$options = getopt("abc");
var_dump($options);
?>shell> php betik.php -aaac
Yukarıdaki örneğin çıktısı:
array(2) {
["a"]=>
array(3) {
[0]=>
bool(false)
[1]=>
bool(false)
[2]=>
bool(false)
}
["c"]=>
bool(false)
}
Örnek 4 getopt() ve kalan_indisi
kullanımı
<?php
// Betik: example.php
$rest_index = null;
$opts = getopt('a:b:', [], $rest_index);
$pos_args = array_slice($argv, $rest_index);
var_dump($pos_args);shell> php example.php -a 1 -b 2 -- test
Yukarıdaki örneğin çıktısı:
array(1) {
[0]=>
string(4) "test"
}