Nov 09

Доста често ми се е налагало да пиша нещо такова

if ($something){
  $a = 1;
  $b = 'a';
} else {
  $a = '2'
  $b = 'c';
}

За което обикновено ми трябват 5-6 и повече реда, което ме дразни. Но вече на 2-3 места ползвам следния синтаксис:

list($a, $b) = $something ? array(1, 'a') : array(2, 'b');

Може и да не е по-бързо и за някои хора да е “леко” не четимо, но аз си го харесвам. От една страна веднага се вижда, че от операцията $a, $b излизат със нови стойности. Две, вижда се кои са тези стойности. Три доста по-кратко и cбито е.

По принцип list e доста подценявана функционалност в php и доста често грешно използвана. Преди много време я използвах за router в моите проекти и се държеше много добре:

list($controller, $action, $id) = explode('/', $url);

Друг доста малко известен факт, е че всъщност list може да се използва и с ArrayAccess обекти. Още малко трикове има тук.

Надявам сe някои да намери това за полезно.

Какво мислите по въпроса