我需要在字符串中找到某些提示并使用这些提示调用函数
实施例
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\ModulesController;
class BlockController extends Controller
{
public function __construct()
{
$this->middleware('auth:members');
}
public function index(Request $request)
{
$string = "someFunction";
$callBack = new ModulesController;
var_dump($callBack->checkFunctions($string)); //Always its NULL
}
}
资源示例
{{1}}
我必须像这样使用这个代码。 如果我能理解这一点,我会尽力改进它。
答案 0 :(得分:1)
你错过了)
$moduleArrayId = array_search($strings ,array_column($this->modules, 'name'));
这就是为什么你一直得到默认值NULL
。
答案 1 :(得分:0)
试试这个:
public function checkFunctions($strings = NULL)
{
$moduleArrayId = array_search($strings ,array_column($this->modules, 'name'));
if($moduleArrayId !== FALSE) {
$method = $this->modules[$moduleArrayId]['name'];
return $this->$method();
}
}
不确定您为了在此处发布了多少更改代码,但我建议您:
$modules
的结构修改为关联数组,以便检查方法是否由index定义,而不是使用array_search。随着此结构的大小增加,这可以使您的代码运行得更快。示例:
private $modules = [
'someFunction' => [
'maxNumber' => 50
]
];
// and then to check if the method is defined:
if (isset($this->modules[$strings])) {
// ...
}