foreach($arr as $el){ $what= $el->what; if($what == 'img'){get_img();} elseif($what == 'video'){get_video(); elseif($what == 'something'){get_something();} }
Как сказать выше, вот так:
get_$what();
Вы можете использовать скобки
<?php function ab(){echo 'ho';} $foo='video'; ('get_'.$foo)();
как в https://www.php.net/manual/en/functions.variable-functions.php
$func = 'foo'; $func(); // This calls foo()
так в вашем случае:
foreach($arr as $el){ $what= $el->what; $funcname = 'get_'.$what; $funcname(); }
function get_id(){ echo "id"; } function get_d(){ echo "d"; } $id='id'; $fun='get_'.$id; $fun();
выходы: id
Вы можете сохранить имя функции в переменной, а затем динамически вызвать эту функцию, добавив () к переменной. (не уверен, правильно ли я сказал)
()
$yourFunction = 'get_'; $yourFunction .= 'img'; $value = $yourFunction(); // will execute get_img();
вот скрипка для игры с