我将“myproject \ module \ Controller :: Action”等字符串提供给其中一个方法,该方法必须确保指定的方法存在并且是公共的。最简单和最合乎逻辑的方法是使用类型提示:
protected doSomething(callable $method, ...)
{
...
}
但是!这给了我:
不推荐使用:非静态方法 myproject \ module \ Controller :: Action()不应该 在path_to_script中静态调用:定义函数的行
真糟糕?为什么类型提示尝试调用方法时必须只检查它是否可调用?如何使用这种类型提示没有错误?
使用带有严格类型和error_reporting(PHP_INT_MAX)的PHP 7.0.2。