Callables must be called without using call_user_func*
when possible.
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
<?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
<?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);
- Fixer class: PhpCsFixer\Fixer\FunctionNotation\RegularCallableCallFixer
- Test class: PhpCsFixer\Tests\Fixer\FunctionNotation\RegularCallableCallFixerTest
The test class defines officially supported behaviour. Each test case is a part of our backward compatibility promise.