我有一個鏈調用像這樣的字符串鏈通話功能:如何通過使用含有鏈PHP
$object->getUser()->getName();
我知道我可以使用一個字符串來調用一個對象上的功能:
$functionName = 'getUser';
$object->$functionName() or call_user_func(array($object, functionName))
我想知道是否有可能爲連鎖電話做同樣的事情? 我試圖做的:
$functionName = 'getUser()->getName';
$object->functionName();
但我得到一個錯誤
方法名稱必須是一個字符串
我想這是因爲()
和->
不能因爲它們解釋是字符串的一部分?有沒有什麼辦法可以做到這一點,而不必做:
$function1 = getUser;
$function2 = getName;
$object->$function1()->$function2();
目的是獲得功能的陣列,並把它們連,以調用給定對象上這條產業鏈,如:
$functions = array('getCoordinates', 'getLongitude'); // or any other chain call
$functionNames = implode('()->',$functions);
$object->$functionNames()
在你的類方法中,通過'return $ this;''返回當前類。 – Akar
@Voitcus你能舉個例子嗎? – skirato
@Akar我不明白你是什麼意思... – skirato