Fork me on GitHub

Rule static_lambda

Lambdas not (indirectly) referencing $this must be declared static.

Warning

This rule is RISKY

Risky when using ->bindTo on lambdas without referencing to $this.

Examples

Example #1

--- Original
+++ New
 <?php
-$a = function () {
+$a = static function () {
     echo $b;
 };

 $b = (function () {
     \assert($this !== null); // approach you can use to instruct PHP CS Fixer to not convert this lambda to static, e.g. when you see "Cannot bind an instance to a static closure" error caused by lambda handling outside of your control
 })->bindTo(new stdClass());

Rule sets

The rule is part of the following rule sets:

References

The test class defines officially supported behaviour. Each test case is a part of our backward compatibility promise.