2014-09-06 54 views
0

我開發一個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>"} 

無論上述$ functions1-7變量的值如何,在當前順序形式中,函數將按調用順序執行。

什麼是改變函數調用的基礎上$ functions1-7變量的值的順序,最好的方法一樣,如果$ functions4 = 7然後function4()應該是最後的函數調用執行。

請提出解決方案的最佳方法,謝謝!

回答

1

讓它1個函數將返回不同的結果取決於變量的值:

function testFunction($var) { 
    if ($var == 1) 
     return "<div>Hello World from function1</div>"; 
    if ($var == 7) 
     return "<div>Hello World from function7</div>"; 
    ... 
} 

那麼你可以像這樣運行:

testFunction($functions1); 

編輯:首先,我沒我完全不瞭解你的問題,所以讓我擴大我的答案。

爲了運行所需順序的功能,最好的可能是使用數組:

$array = array($functions1, $functions2, $functions3, $functions4, $functions5, $functions6, $functions7); 

然後做上述相同,但把它放在一個循環:

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

這裏是一個演示:http://3v4l.org/mgOKh