是否可以将函数存储在数组中并根据 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'; }
];
我是 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'; }
];