Php 如何根据变量的值更改函数调用的顺序

Php 如何根据变量的值更改函数调用的顺序,php,wordpress,Php,Wordpress,我正在开发WordPress插件,我有以下情况: $functions1 = 7; //users can select this value and this can be something between 1-7 $functions2 = 5; //these values are positions to be precise $functions3 = 6; //no two variables can have same value as each position i

我正在开发WordPress插件,我有以下情况:

$functions1 = 7;  //users can select this value and this can be something between 1-7  
$functions2 = 5;  //these values are positions to be precise 
$functions3 = 6;  //no two variables can have same value as each position is unique
$functions4 = 3;  //we can also make $functions1-7 an array to avoid making 7 variables
$functions5 = 4;
$functions6 = 2;
$functions7 = 1;
我需要根据上述相对变量的值更改这些函数调用的执行顺序:

function1();
function2();
function3();
function4();
function5();
function6();
function7();
所有这些函数都返回一些HTML,如:

function1(){ return "<div>Hello World from function1</div>" }
.
.
function7(){return "<div>Hello World from function7</div>"}
function1(){return“Hello World from function1”}
.
.
function7(){从function7返回“Hello World”}
在当前顺序形式中,无论上述$FUNCTION 1-7变量的值如何,函数都将按照调用顺序执行

根据$functions1-7变量的值更改函数调用顺序的最佳方法是什么,例如如果$functions4=7,那么function4()应该是最后执行的函数调用


请建议解决方案的最佳方法,谢谢

使其成为一个函数,根据变量的值返回不同的结果:

function testFunction($var) {
    if ($var == 1)
        return "<div>Hello World from function1</div>";
    if ($var == 7)
        return "<div>Hello World from function7</div>";
    ...
}
编辑:首先,我没有完全理解你的问题,所以让我扩展我的答案

为了按要求的顺序运行函数,最好使用数组:

$array = array($functions1, $functions2, $functions3, $functions4, $functions5, $functions6, $functions7);
然后执行与上面相同的操作,但将其放入循环中:

for ($i = 0; $i<count($array); $i++)
    echo testFunction($array[$i]);

例如,$i=0;$i可以使用关联数组和foreach来完成

function Func3(){
    echo '3';
}
function Func1(){
    echo '1';
} 
$a = [3=>'Func3',1=>'Func1'];
ksort($a);
foreach($a as $k=>$v){
    $fname = $a[$k];
    $fname();
}
没有测试。 资源: ,

function Func3(){
    echo '3';
}
function Func1(){
    echo '1';
} 
$a = [3=>'Func3',1=>'Func1'];
ksort($a);
foreach($a as $k=>$v){
    $fname = $a[$k];
    $fname();
}