Tôi có một cuộc gọi chuỗi như vậy:Làm thế nào để chuỗi chức năng cuộc gọi bằng cách sử dụng một chuỗi chứa chuỗi đó trong PHP
$object->getUser()->getName();
tôi biết rằng tôi có thể sử dụng một chuỗi để gọi một chức năng trên một đối tượng:
$functionName = 'getUser';
$object->$functionName() or call_user_func(array($object, functionName))
Tôi đã tự hỏi liệu có thể thực hiện tương tự cho một cuộc gọi chuỗi không? Tôi cố gắng để làm:
$functionName = 'getUser()->getName';
$object->functionName();
Nhưng tôi nhận được một lỗi
tên Phương pháp phải là một chuỗi
Tôi đoán đây là do ()
và ->
không thể được giải thích bởi vì họ là một phần của chuỗi? Có cách nào tôi có thể đạt được điều này mà không cần phải làm:
$function1 = getUser;
$function2 = getName;
$object->$function1()->$function2();
Mục đích là để có được một loạt các chức năng và chuỗi chúng, để gọi chuỗi này trên đối tượng nhất định, ví dụ:
$functions = array('getCoordinates', 'getLongitude'); // or any other chain call
$functionNames = implode('()->',$functions);
$object->$functionNames()
Trong phương thức lớp của bạn, hãy trả về lớp hiện tại bằng cách thực hiện điều này 'return $ this;' '. – Akar
@Voitcus Bạn có thể cho tôi một ví dụ không? – skirato
@Akar Tôi không hiểu ý của bạn là gì ... – skirato