2015-04-14 28 views
0

我試圖分裂一行PHP,原因是我實際上並不總是需要一些代碼,所以我可以重用它的一部分。如何分割PHP並重新使用它的一部分?

我這樣做的主要原因是因爲我得到的貨幣顯示一些貨幣如更多的數字1.2562而不是1.25,所以我只想在某些GET的情況下使用substr函數,並且能夠爲其他GET進行修改。

http://prntscr.com/6ttw8o

符號始終是必需的,SUBSTR不是,$轉換器總是需要,SUBSTR的端部是不是然而,它可以改變,需要新的貨幣。

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

我試着這樣做與爆炸,但我不完全知道如何做到這一點,因爲我從來沒有真正收到,所以我對如何去有點摸不着頭腦,以任何分裂它。

一旦代碼通過GET檢查這是當前一組走了,我希望它搶指定拆分代碼段,然後將它輸出。

+0

您可以創建一個等於代碼部分的變量,並在需要時將其與其他行進行連接。 – nomistic

回答

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); 
} 

該解決方案是非常具有可讀性,因爲您可以立即看到在條件語句中的兩個分支之間的差異。

+0

你能給我一個這個函數被使用的例子嗎?與「0,5」,「0,4」和沒有任何substr? – Exhibitioner

+0

@Exhibitioner:添加示例。我不知道'$ converter'是你自己的代碼。如果是的話,你應該考慮把格式化代碼放在那裏。這會改善你的結構並減少傳遞的參數數量。我也不明白爲什麼你需要額外的因素,例如'GBP'爲'2'。 –

+0

我需要「2」的原因是因爲在我已經完成了所有GET之後,我將以該格式在頁面上輸出價格,並且它們的價格有所不同,所以我希望能夠修改* 2無論新特定產品的價格是多少。 – Exhibitioner

相關問題