Не знаю, почему это всегда забывают, но есть также синтаксис Perl-esque:
$foo = $foo or $foo = "bar";
Или в вашем случае просто:
$foo or $foo = "bar";
Я часто использую чрезмерноепробелы, чтобы держать его читабельным.Самое главное, что он действительно не выполняет присваивание, если $ foo не имеет значения false.