是否可以将函数存储在数组中并根据 if 语句结果调用它们?

Is it possible to store functions in an array and call them depending on if statement result?

我是 PHP 的新手,我正在尝试将函数存储在一个数组中,以便稍后使用 if 语句调用它们。

我试过了,但是函数在 if 语句之前调用,所以这是我需要的示例:

    function a()  {
        return 'a';
    }

    function b()  {
        return 'b';
    }

    $array = [a(), b()];

    if($condition === 'a') {
        $array[0];
    }

我想实现的是根据if验证使用特定的函数。

只需将函数名称存储为字符串并调用 call_user_func

function a()  {
    return 'a';
}

function b()  {
    return 'b';
}

$array = ['a', 'b'];

if($condition === 'a') {
    call_user_func($array[0]);
}

示例:

<?php

$funcArray = [
   'a' => function($in) {
      print("$in\n");
   },
   'b' => function($in) {
      print("$in\n");
   }
];

foreach(array_keys($funcArray) as $key)
{
   $funcArray[$key]($key);
}

您要么必须使用 call_user_func,要么使用像这样的匿名函数:

$array = [
    function() { return 'a'; },
    function() { return 'b'; }
];