Как подставить $i в название функции в цикле?

Нужно запустить много функций в цикле, у которых только цифры в названии отличаются

Существует функция:

func1_1() {
  //something code here
}

А надо сделать какое-то кол-во таких ф-ий: func1_2(), func1_3()....func2_1(), func2_2()...

В стремлении укоротить код пытаюсь сделать это с помощью цикла:

for ($i = 0; $i < 3; $i++) {
  for ($j = 0; $j < 3; $j++) {
    func'.($i+1).'_'.($j+1).'()' {//тут проблемы с синтаксисом, вот этот момент и интересует
      //something code here
    }
  }
}

Ответы (1 шт):

Автор решения: Алексей Шиманский

В качестве бреда к бреду:

$functionsHolder = [];

for ($i = 1; $i <= 3; $i++) {
    for ($j = 1; $j <= 3; $j++) {
        $functionsHolder["func{$i}_{$j}"] = function() use ($i, $j) {
            echo "Это функция {$i}_{$j}";
        };
    }
}



for ($i = 1; $i <= 3; $i++) {
    for ($j = 1; $j <= 3; $j++) {
        $functionsHolder["func{$i}_{$j}"]();
        echo "\n";
    }
}
// Или так
// array_walk_recursive($functionsHolder, function($function) {
//    $function();
//    echo "\n";
//});

// Output:

Это функция 1_1
Это функция 1_2
Это функция 1_3
Это функция 2_1
Это функция 2_2
Это функция 2_3
Это функция 3_1
Это функция 3_2
Это функция 3_3
→ Ссылка