Callables must be called without using call_user_func*
when possible.
Warning
Using this rule is risky.
Risky when the call_user_func
or call_user_func_array
function is
overridden or when are used in constructions that should be avoided, like
call_user_func_array('foo', ['bar' => 'baz'])
or call_user_func($foo,
$foo = 'bar')
.
--- Original
+++ New
@@ -1,6 +1,6 @@
<?php
- call_user_func("var_dump", 1, 2);
+ var_dump(1, 2);
- call_user_func("Bar\Baz::d", 1, 2);
+ Bar\Baz::d(1, 2);
- call_user_func_array($callback, [1, 2]);
+ $callback(...[1, 2]);
--- Original
+++ New
@@ -1,4 +1,4 @@
<?php
-call_user_func(function ($a, $b) { var_dump($a, $b); }, 1, 2);
+(function ($a, $b) { var_dump($a, $b); })(1, 2);
-call_user_func(static function ($a, $b) { var_dump($a, $b); }, 1, 2);
+(static function ($a, $b) { var_dump($a, $b); })(1, 2);