Böyle str_replace gibi işlevleri bazı yerleşik PHP isteğe bağlı giriş değişkenleri olduğunu fark. Ben kendi fonksiyonları isteğe bağlı giriş değişkenleri var olabilir? Eğer öyleyse, nasıl?
Thanks, Brian
Birinci yol, bazı argümanlar için varsayılan değerleri kullanmak için:
function doStuff($required, $optional = '', $optional2 = '') {
...
}
Şimdi sadece varsayılan bir değer içerir ve sonra birisi yapabilirsiniz:
doStuff('foo');
doStuff('foo', 1);
doStuff('foo', 2, 3);
Sen alan belirtilmedi ise uygun bir varsayılan değer seçmek için ya da hiçbir değeri ayarlı olduğunu belirtmek gerekir. Tipik örnekler ''
, 0
, false
, null
ya da array()
vardır.
Yoksa ile tüm bunları belirtmek gerekir func_get_args()
a> yok:
function doStuff() {
print_r(func_get_args());
}
func_get_args()
açık bağımsız değişkenleri (birinci örnek) ile birlikte de kullanılabilir.
Yapabileceğiniz başka bir alternatif bu ...
EDIT
şimdi biraz yararlı işlevi ..
function getLongestString() {
$strings = func_get_args();
$longestString = '';
foreach($strings as $string) {
if (strlen($longestString) < strlen($string)) {
$longestString = (string) $string;
}
}
return $longestString;
}
Eğer bu gibi kullanımı hangi
echo getLongestString('hello', 'awesome'); // awesome
Bu size isteyen tam olarak ne olmuş olabilir iken, bilmek hala iyi ve optional function inputs sorununu çözer.