вызвать функцию, используя переменную в имени функции - PullRequest
1 голос
/ 07 февраля 2020
foreach($arr as $el){
    $what= $el->what;
    if($what == 'img'){get_img();}
    elseif($what == 'video'){get_video();
    elseif($what == 'something'){get_something();} 
}

Как сказать выше, вот так:

 get_$what();

Ответы [ 4 ]

2 голосов
/ 07 февраля 2020

Вы можете использовать скобки

<?php

function ab(){echo 'ho';}
$foo='video';
('get_'.$foo)();
2 голосов
/ 07 февраля 2020

как в 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();
}
1 голос
/ 07 февраля 2020
 function get_id(){
        echo "id";
       }
    function get_d(){
        echo "d";
        }

      $id='id';
      $fun='get_'.$id;
      $fun();

выходы: id

1 голос
/ 07 февраля 2020

Вы можете сохранить имя функции в переменной, а затем динамически вызвать эту функцию, добавив () к переменной. (не уверен, правильно ли я сказал)

$yourFunction = 'get_';
$yourFunction .= 'img';

$value = $yourFunction();
// will execute get_img();

вот скрипка для игры с

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...