如何拆分PHP并重用其中的一部分?

时间:2015-04-14 22:31:44

标签: php

我正在尝试拆分一行PHP,原因是我实际上并不总是需要一些代码,所以我可以重用它的一部分。

我这样做的主要原因是因为我获得的货币显示某些货币的更多数字,例如1.2562而不是1.25,所以我想只在某些GET上使用substr函数,并且能够为其他GET修改它。

http://prntscr.com/6ttw8o

始终需要符号,substr不是,$ converter总是需要,substr的结尾部分不是,它可以改变,需要新的货币。

$symbol[2] . substr(($converter->convert($defaultCurrency, $newCurrency) * 1),  0, 4) . " <b>" .$newCurrency. "</b>";

我尝试过爆炸,但是我并不完全确定如何做到这一点,因为我从来没有真正分开任何东西,所以我对如何解决它感到有点困惑。

一旦代码经过GET检查,这是当前的一组,我希望它抓取指定的拆分代码片然后输出。

1 个答案:

答案 0 :(得分:0)

将代码放在这样的函数中:

function formatCurrency($symbol, $converter, $defaultCurrency, $newCurrency, $factor=1.0, $suffix="", $substrChars=0) {
    if($substrChars>0) {
        return $symbol . substr(($converter->convert($defaultCurrency, $newCurrency) * $factor),  0, $substrChars) . $suffix . " <b>" . $newCurrency. "</b>";
    } else {
        return $symbol . ($converter->convert($defaultCurrency, $newCurrency) * $factor) . $suffix . " <b>" . $newCurrency. "</b>";
    } 
}

如果您在没有$substrChars参数的情况下调用它,它将省略substr()调用,否则它将删除除$substrChars个字符以外的所有字符:

if( $_GET['currency'] === "GBP" ){
    $newCurrency = $_GET['currency'];
    $string = formatCurrency($symbol[1], $converter, $defaultCurrency, $newCurrency, 2.0, ".00", 0);
} elseif( $_GET['currency'] === "USD" ){
    $newCurrency = $_GET['currency'];
    $string = formatCurrency($symbol[2], $converter, $defaultCurrency, $newCurrency, 1.0, "", 4);
}

此解决方案非常易读,因为您可以立即看到条件语句中两个分支之间的区别。