Rule yoda_style¶
Write conditions in Yoda style (true), non-Yoda style (['equal' => false,
'identical' => false, 'less_and_greater' => false]) or ignore those conditions
(null) based on configuration.
Configuration¶
always_move_variable¶
Whether variables should always be on non assignable side when applying Yoda style.
Allowed types: bool
Default value: false
equal¶
Style for equal (==, !=) statements.
Allowed types: bool and null
Default value: true
identical¶
Style for identical (===, !==) statements.
Allowed types: bool and null
Default value: true
less_and_greater¶
Style for less and greater than (<, <=, >, >=) statements.
Allowed types: bool and null
Default value: null
Examples¶
Example #1¶
Default configuration.
--- Original
+++ New
<?php
- if ($a === null) {
+ if (null === $a) {
echo "null";
}
Example #2¶
With configuration: ['equal' => true, 'identical' => false, 'less_and_greater' => null].
--- Original
+++ New
<?php
- $b = $c != 1; // equal
- $a = 1 === $b; // identical
+ $b = 1 != $c; // equal
+ $a = $b === 1; // identical
$c = $c > 3; // less than
Example #3¶
With configuration: ['always_move_variable' => true].
--- Original
+++ New
<?php
-return $foo === count($bar);
+return count($bar) === $foo;
Example #4¶
With configuration: ['equal' => false, 'identical' => false, 'less_and_greater' => false].
--- Original
+++ New
<?php
// Enforce non-Yoda style.
- if (null === $a) {
+ if ($a === null) {
echo "null";
}
Rule sets¶
The rule is part of the following rule sets:
References¶
Fixer class: PhpCsFixer\Fixer\ControlStructure\YodaStyleFixer
Test class: PhpCsFixer\Tests\Fixer\ControlStructure\YodaStyleFixerTest
The test class defines officially supported behaviour. Each test case is a part of our backward compatibility promise.