Sen func_get_args
'u kullanabilir. Örnek: İç PHP fonksiyonları için kullanılan kongre her zaman isteğe bağlı bağımsız değişkenler varsayılan bir değer vermek ve her iki argüman verilmez ve varsayılan değeri açıkça verildiğinde onları aynı davranışa sahip olması olduğunu
function foo($optional=null) {
if (count(func_get_args()) > 0)
echo "optional given\n";
else
echo "optional not given\n";
}
foo(); //optional not given
foo(null); //optional given
Not. Başka türlü bulursanız, bir hata raporu gönderin. if
s almadan böyle bu edelim yapmanız şeyler:
function strpos_wrap($haystack, $needle, $offset = 0) {
return strpos($haystack, $needle, $offset);
}
Bu kongre daha uygulanır sizi göstermiştir Bu soruya yönlendirdi zorlanma gibi userland olduğunu. Sözleşme ihtiyaçlarınızı karşılamazsa, en azından yaklaşımınızı tekrar gözden geçirin. func_num_args
/func_get_args
'un amacı temel olarak değişken argüman fonksiyonlarına izin vermektir.
Bu, bir işlev için gerçekten kludgey bir yoldur. 'f (0)', '0' argümanının' kaynağından bağımsız olarak aynı sonucu üretmelidir. –
Parametre ayarlanmışsa ve parametre ayarlanmamışsa başka bir şey yapan bir polimorfik yöntem oluşturmuyorsanız. – StackOverflowNewbie
Frank, bazı fonksiyonlarda yerleşik olarak bunu yapıyorum, benim durumumda substr'i sarmam gerekiyordu, ve substra'ların substr için $ uzunluk varsayılan argümanını geçtiğimde, altstr, 0 uzunluğu olarak yorumladığı için hiçbir şeyim yok. Evet, delice kludgey, PHP'den daha iyi bir şey beklemeye geldim. –