Рекурсивная анонимная (лямбда) функция

Пример ниже показывает как можно создать рекурсивное замыкание. Другими словами как можно создать анонимную функцию и использовать её рекурсивно саму в себе.

Все это может показаться бредом, но как ни странно такие функции мне иногда нужны из-за удобства. Поэтому хорошо бы знать, что такое можно делать в PHP.

// считаем факториал
$factorial__fn = static function( $n ) use ( & $factorial__fn ){
	if( $n == 1 ){
		return 1;
	}

	return $n * $factorial__fn( $n-1 );
};

echo $factorial__fn( 5 ); //= 120

Эта заметка встроена в: 30 неожиданностей в PHP