2015-10-14 20 views
0

我想知道我怎样才能使下面的函数可以使用变量来自其他功能..如何制作一个可以从其他函数动态使用变量的函数?

其他函数将返回数据(数字),但我会用以下为例:

$data1 = '25999'; 
$data2 = '222222' 

function roundNumbers() 
{ 
    if ($nData > 999 && $nData <= 999999) { 
     $nResult = floor($nData/1000) . 'K'; 
    } elseif ($nData > 999999) { 
     $nResult = floor($nData/1000000) . 'M'; 
    } else { 
     $nResult = $nData; 
    } 
} 

然后从功能打印数据,如下所示:roundNumbers($data1);如果使用$data1,则应显示25K

+1

你提的问题不够清楚,我 –

回答

2

适当的方式做,这将是传递作为参数传递给你的函数的值,然后返回您标示什么作为$nResult

这使得该功能非常可重复使用的,并且易于测试,因为它确实不依赖于你的程序的任何其他部分。您甚至可以将其剥离并放入其自己的库中,以便在以后的应用程序中重用,而不用担心其行为会有所不同。

例如:

function roundNumbers($nData) { 
    if ($nData > 999 && $nData <= 999999) { 
     return floor($nData/1000) . 'K'; 
    } elseif ($nData > 999999) { 
     return floor($nData/1000000) . 'M'; 
    } else { 
     return = $nData; 
    } 
} 

$data1 = 25999; 

echo roundNumbers("25000"); 
echo roundNumbers($data1); 
1

如果你真的想这样做$data1$data2 ...等,那么你可以做:

$data1 = '25999'; 
$data2 = '222222' 

function roundNumbers($n) 
{ 
    $data_var = "data".$n; //dynamically name the variable 
    $nData = $$data_var; //will set $nData into $data1, or $data2 etc depending on $n 

    if ($nData > 999 && $nData <= 999999) { 
     $nResult = floor($nData/1000) . 'K'; 
    } elseif ($nData > 999999) { 
     $nResult = floor($nData/1000000) . 'M'; 
    } else { 
     $nResult = $nData; 
    } 
} 
相关问题