Есть ли проблемы с этой техникой для назначения и проверки в PHP?

Присваивание и простое условное выражение:

$tacos = buy_taco( 3 );
if ( $tacos ) {
    eat_lunch( $tacos );
}

Есть ли у этого сокращенного подхода название?

Есть недостатки или ошибки?

if ( $tacos = buy_taco( 3 ) ) {
    eat_lunch( $tacos );
}

person chrisdillon    schedule 12.10.2016    source источник
comment
См. stackoverflow.com/questions/630035/   -  person Clive    schedule 12.10.2016
comment
Первый способ лучше. Это яснее. Если я вижу один знак равенства в операторе if, срабатывает тревога.   -  person iSS    schedule 12.10.2016
comment
$tacos всегда верно, проверять не нужно. eat_lunch() позовут, даже если в фургоне закончатся тако, вместо них будут только буррито.   -  person Jay Blanchard    schedule 12.10.2016