php

2008-12-06 11 views
11

'daki bir işlevin argüman sayısının dinamik olarak nasıl kontrol edileceğini, çalışma zamanında PHP'de bir metodun veya fonksiyonun sahip olduğu birçok parametreyi kontrol edebilirim.php

Ben aradığın

 
2 

cevap

1

olmak

 
get_func_arg_number ("foo", "bar") 

ve sonuç gibi bir şey çalıştırmak için bir yol olup olmadığını bilmek gerekir

 
class foo { 
    function bar (arg1, arg2){ 
    ..... 
    } 
} 

örnek PHP5'teki yansıtma yetenekleri - belgeler here.

Özellikle, ReflectionFunction ve ReflcetionMethod sınıflarına bakın.

-5

Sana Bunu geride kalan reflection kullanmak gerekir

http://us3.php.net/manual/en/function.func-num-args.php

+1

sayılı Bundan sonra ne konum olduğunu ve içinde bulunduğunuz işleve geçirildi kaç argüman söylüyor. Dönecektir – gnud

+0

Bunu çağırdığınızda işleve iletilen argüman sayısı. OP, fonksiyon imzasında farklı olabilecek argüman sayısını arar. –

28

) (func_num_args arıyoruz inanıyoruz.

$method = new ReflectionMethod('foo', 'bar'); 
$num = $method->getNumberOfParameters(); 
+0

ayrıca bkz. ['GetNumberOfRequiredParameters()'] (http://php.net/manual/en/reflectionfunctionabstract.getnumberofrequiredparameters.php) –

9

Yansıma Bu fonksiyonların içindeki kullanım içindir

class foo { 
    function bar ($arg1, $arg2){ 

    } 
} 
$ReflectionFoo = new ReflectionClass('foo'); 
echo $ReflectionFoo->getMethod('bar')->getNumberOfParameters();