我一直在想是否可以调用这样的函数
//
public function getDataSource($id,$source,Request $request){
$form = 'Invoice';
$fuToCall = $source;
return \App\Core\Forms\.$form.\.$form.DataSource::$fuToCall();
}
我的$ form名称的串联无效,为什么?有人可以帮忙吗。
答案 0 :(得分:2)
您实际上并不是在串联字符串。您的示例中名称空间的非动态部分不是字符串。
您可以这样做:
$class = '\App\Core\Forms\\'.$form.'\\'.$form.'\DataSource';
return $class::$fuToCall();
或用1行:
return ('\App\Core\Forms\\'.$form.'\\'.$form.'\DataSource')::$funcToCall();
答案 1 :(得分:1)
这应该有效。
call_user_func('\App\Core\Forms\\' . $form . '\\' . $form . '\\DataSource', 'fuToCall');