Skip to content

Instantly share code, notes, and snippets.

@vrana
Last active February 17, 2017 14:08
Show Gist options
  • Save vrana/7f7626d0d0f92803dfdc9818f5e2c4dd to your computer and use it in GitHub Desktop.
Save vrana/7f7626d0d0f92803dfdc9818f5e2c4dd to your computer and use it in GitHub Desktop.
<?php
if (X) {
$a = 1;
}
// ...
if (X) {
$a;
}
while (true) {
$a = 1;
break;
}
$a;
@ondrejmirtes
Copy link

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

@vrana
Copy link
Author

vrana commented Feb 17, 2017

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