2008-12-06 35 views
11

làm cách nào tôi có thể kiểm tra tại thời gian chạy ở nhà nhiều tham số một phương thức hoặc hàm có trong PHP.cách tự động kiểm tra số đối số của hàm trong php

dụ

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

tôi sẽ cần phải biết nếu có một cách để chạy một cái gì đó giống như

 
get_func_arg_number ("foo", "bar") 

và kết quả là

 
2 

Trả lời

1

Bạn đang tìm kiếm khả năng phản chiếu trong PHP5 - tài liệu here.

Cụ thể, hãy xem các lớp ReflectionFunction và ReflcetionMethod.

-5

Tôi tin rằng bạn đang tìm kiếm func_num_args()

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

+1

số này là để sử dụng trong chức năng, và nói có bao nhiêu đối số được truyền cho hàm bạn đang ở. – gnud

+0

Đó sẽ trở lại số lượng đối số được truyền cho hàm khi bạn gọi nó. OP đang tìm số đối số trong chữ ký hàm, có thể khác nhau. –

28

Bạn cần phải sử dụng reflection để làm điều đó.

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

cũng thấy ['getNumberOfRequiredParameters()'] (http://php.net/manual/en/reflectionfunctionabstract.getnumberofrequiredparameters.php) –

9

Reflection là những gì bạn đang sau đây

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

    } 
} 
$ReflectionFoo = new ReflectionClass('foo'); 
echo $ReflectionFoo->getMethod('bar')->getNumberOfParameters(); 
Các vấn đề liên quan