2015-04-14 3 views
0

Я пытаюсь разбить строку PHP вверх, причина в том, что на самом деле мне не нужен код, и я могу повторно использовать его.Как я могу разделить PHP и повторно использовать его?

Основная причина, по которой я делаю это, заключается в том, что в валюте, которую я получаю, отображается больше цифр для некоторых валют, например. 1.2562 вместо 1.25, поэтому я хочу использовать функцию substr только для определенных GET и иметь возможность изменять ее для других GET.

http://prntscr.com/6ttw8o

символа всегда требуется, зиЬзЬги нет, $ преобразователя всегда требуется, концевая часть подстроки, однако, не может изменить, требуются новая валюта.

$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» и без каких-либо субстратов? – Exhibitioner

+0

@ Экспонент: добавлен пример. Я не знаю, является ли '$ converter' вашим собственным кодом. Если да, вам стоит подумать о том, чтобы вставить этот код форматирования. Это улучшит вашу структуру и уменьшит количество передаваемых параметров. Я также не понимаю, почему вам нужен дополнительный коэффициент, например. '2' за' GBP'. –

+0

Причина, по которой мне нужно «2», заключается в том, что после того, как я проверил все GET'S, я собираюсь затем выводить цены на странице с этим форматом, и они меняются по цене, поэтому я хочу иметь возможность изменять * 2 к любой новой цене для этого конкретного продукта. – Exhibitioner

Смежные вопросы