This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
if (X) { | |
$a = 1; | |
} | |
// ... | |
if (X) { | |
$a; | |
} | |
while (true) { | |
$a = 1; | |
break; | |
} | |
$a; |
Jsou to dvě různé ukázky. S oběma si třeba Closure Compiler poradí. Pokud by v první ukázce bylo dvakrát if (f())
, tak na tom taky skončí, ale pokud pozná, že tam je něco neměnného, tak si s tím poradí.
Druhá ukázka je na první pohled bez problému. Ale chápu tvou motivaci brát jako scope proměnných prostě blok a když jsou použité až za ním, tak varovat. Nicméně kód podle tohohle omezení v takto jasných případech předělávat nechci.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Jo, tohle řeším tak, že druhý if přepíšu na isset($a). Tohle se nedá staticky analyzovat, protože výsledek podmínky se mezitím může změnit. @vrana