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

时间:2019-04-29 21:54:52

标签: php php-7

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

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

    function a()  {
        return 'a';
    }

    function b()  {
        return 'b';
    }

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

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

我要实现的是根据是否通过验证使用特定功能。

3 个答案:

答案 0 :(得分:0)

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

function a()  {
    return 'a';
}

function b()  {
    return 'b';
}

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

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

答案 1 :(得分:0)

示例:

<?php

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

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

答案 2 :(得分:0)

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

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