Tôi không chắc chắn những gì bạn có ý nghĩa bởi "xử lý các tồn tại cuối cùng của phương pháp và kêu gọi của họ với các biến tương ứng của họ", nhưng bạn có thể sau call_user_func_array
:
call_user_func_array(
array($myArray[0], $myArray[1]),
array($myArray[2])
);
Nếu bạn muốn làm điều đó cho ví dụ cụ thể mà bạn đã tạo với $controller = new $myArray(0)
, thay thế $myArray[0]
bằng $controller
, ví dụ:
$controller = new $myArray(0);
call_user_func_array(
array($controller, $myArray[1]),
array($myArray[2])
);
hoặc vượt qua new $myArray[0]
nếu bạn không chăm sóc về các trường hợp bị mất sau khi cuộc gọi
call_user_func_array(
array(new $myArray[0], $myArray[1]),
array($myArray[2])
);
Nếu không, bạn sẽ nhận được một thông báo E_STRICT
và không thể tham khảo $this
trong bất cứ myMethod
là. Xem thêm PHP manual on possible callback formats.
Để xác nhận các phương thức và lớp thực sự tồn tại, bạn có thể sử dụng
Ví dụ:
if (method_exists($myArray[0], $myArray[1])) {
call_user_func_array(*/ … */)
}
Xin làm rõ ques của bạn nếu có điều gì khác. On a sidenote, this was probably answered before, nhưng vì tôi không chắc chắn câu hỏi là gì, tôi cũng không chắc chắn nên chọn câu hỏi nào.
này chỉ hoạt động với các phương pháp tĩnh, nếu không bạn cần một thể hiện của lớp –
@kemp không đúng sự thật, nhưng nói thêm làm rõ. Tôi nghĩ đó là ý của bạn. – Gordon
bạn nói đúng, xấu của tôi –