Страница 1 из 1
[PHP] - не велосипед ли изобретаю?
Добавлено: 2008-05-28 20:39:04
Alex Keda
сабж. Может оно уже давно есть и универсальней быстрей?
Или можно это попроще переписать?
Код: Выделить всё
// функция преобразования из одной валюты в другую.
function convert_currency_rate($sourse,$destination,$currency){ // открытие функции преобразования валюты
// 1 - рубли
// 2 - евры
// 3 - долляры
// перебираем варианты.
if($sourse == $destination){ // исходная валюта совпадает с окончательной. просто вертаем сумму
return $currency;
}elseif($sourse == 1 && $destination == 2){ // исходная валюта - рубли - назначение - евры.
return $currency/$GLOBALS['rate_euro'];
}elseif($sourse == 1 && $destination == 3){ // исходная валюта - рубли - назначение - долляры
return $currency/$GLOBALS['rate_usd'];
}elseif($sourse == 2 && $destination == 1){ // исходная валюта - евры - назначение - рубли
return $currency * $GLOBALS['rate_euro'];
}elseif($sourse == 2 && $destination == 3){ // исходная валюта - евры - назначение - долляры
return ($currency * $GLOBALS['rate_euro'])/$GLOBALS['rate_usd'];
}elseif($sourse == 3 && $destination == 1){ // доллары --> рубли
return $currency * $GLOBALS['rate_usd'];
}elseif($sourse == 3 && $destination == 2){ // доллары --> евры
return ($currency * $GLOBALS['rate_usd'])/$GLOBALS['rate_euro'];
}else{ // ошибка. неизвестный вариант
return "Ошибка преобразования валюты!";
} // закрытие - неизвестный вариант
} // закрытие функции преобразования валюты
Re: [PHP] - не велосипед ли изобретаю?
Добавлено: 2008-05-29 0:25:15
ProFTP
а разве есть разница в скорости? елси есть то навреное 1% еще можно: switch, хэш (сгенерирвоать текущую валюту только)
Re: [PHP] - не велосипед ли изобретаю?
Добавлено: 2008-05-29 7:51:28
zg
lissyara писал(а):Или можно это попроще переписать?
можно
Код: Выделить всё
<?
// Список валют
define('MONEY_RUB', 1);
define('MONEY_USA', 2);
define('MONEY_EUR', 3);
// Курсы валют в рублях
$rate = array(
MONEY_RUB => 1,
MONEY_USA => 26.90,
MONEY_EUR => 37.50,
);
echo 'Рубли в доллары: 36р = ', convert_currency_rate(36, MONEY_RUB, MONEY_USA), '$', PHP_EOL;
echo 'Доллары в рубли: 50$ = ', convert_currency_rate(50, MONEY_USA, MONEY_RUB), 'р', PHP_EOL;
echo 'Евро в доллары : 11e = ', convert_currency_rate(11, MONEY_EUR, MONEY_USA), '$', PHP_EOL;
/**
* Функция переводит сумму денег из одной валюты в другую
*
* @param float $sum Сумма
* @param int $sour Исходная валюта MONEY_
* @param int $dest Конечная валюта MONEY_
*/
function convert_currency_rate($sum, $sour, $dest)
{
global $rate; // Этого делать не рекомендуется!!!
// Высчитываем результат
return round($sum * $rate[$sour] / $rate[$dest], 2);
}
?>
========
Рубли в доллары: 36р = 1.34$
Доллары в рубли: 50$ = 1345р
Евро в доллары : 11e = 15.33$
Re: [PHP] - не велосипед ли изобретаю?
Добавлено: 2008-05-29 7:57:50
zg
ProFTP писал(а):а разве есть разница в скорости? елси есть то навреное 1% еще можно: switch, хэш (сгенерирвоать текущую валюту только)
тут логическая ошибка, нужно исправлять логику работы
Re: [PHP] - не велосипед ли изобретаю?
Добавлено: 2008-05-29 8:07:51
Alex Keda
ну, что у меня криво - это понятно, но у вас-то - вначале вызов функции а потом её определение....
ужос нах....
==========
хотя код красивый.
Re: [PHP] - не велосипед ли изобретаю?
Добавлено: 2008-05-29 8:10:45
zg
lissyara писал(а):но у вас-то - вначале вызов функции а потом её определение....
функции и классы, которые определены вне классов и функций объявляются на стадии проверки сиснтаксиса, до любого выполнения кода
lissyara писал(а):хотя код красивый.
не сразу он таким стал ))))
Re: [PHP] - не велосипед ли изобретаю?
Добавлено: 2008-05-29 8:19:01
Alex Keda
zg писал(а):lissyara писал(а):но у вас-то - вначале вызов функции а потом её определение....
функции и классы, которые определены вне классов и функций объявляются на стадии проверки сиснтаксиса, до любого выполнения кода
я знаю. помоему даже в сях уже такое можно - компилятор материться но компилит.
однако, если рассуждать число логически - то это через одно место и логически неверно.
Re: [PHP] - не велосипед ли изобретаю?
Добавлено: 2008-05-29 8:24:43
zg
lissyara писал(а):однако, если рассуждать число логически - то это через одно место и логически неверно.
ну давай порассуждаем

))
1. писать нужно по правилам компилятора/интерпритатора
2. правила позволяют описывать функции и классы в любом месте файла, поскольку структурно это ни на что не влияет
3. классы и функции всегда рекомендуется выносить за основной код, посколько это улучшает читабельность кода и не разрывает его
Re: [PHP] - не велосипед ли изобретаю?
Добавлено: 2008-05-29 8:29:37
Alex Keda
а include/require/... уже отменили?
код разбитый на куски и файлы читается ещё лучше, если разбивка идёт по логическим частям.
=========
про вынос в конец кода, изврат какой-то.
наверно спьяну в доку написали...
логика должна быть - иначе программизм в маразм превратиться...
Re: [PHP] - не велосипед ли изобретаю?
Добавлено: 2008-05-29 8:41:15
hizel
lissyara писал(а):
про вынос в конец кода, изврат какой-то.
наверно спьяну в доку написали...
логика должна быть - иначе программизм в маразм превратиться...
зачем на человека нервничаешь, все вполне логично и удобно

сверху основа, что собственно в этом куске сырца делается
а внизу, шоб не отвлекать, вспомогательные функции
Re: [PHP] - не велосипед ли изобретаю?
Добавлено: 2008-05-29 9:04:32
Alex Keda
применительно к данному случаю - это основное в чём был вопрос

=======
я не нервничаю - просто логика в таком подходе какая-то странная...
по типу неевклидовой геометрии - кто-то же её понимает

А мен не давалась - ибо обычную геометрию я на ура понимаю

Re: [PHP] - не велосипед ли изобретаю?
Добавлено: 2008-05-29 11:54:43
jeehadina
gz, (оффтом) а ты чем комменты парсишь потом?
Re: [PHP] - не велосипед ли изобретаю?
Добавлено: 2008-05-29 12:00:09
zg
jeehadina писал(а):gz, (оффтом) а ты чем комменты парсишь потом?
я zg - ZlobnyGrif

)) парсит phpDoc, когда документацию подготавливает, эта встроенная фича зенд студии, он кстати валидно это всё дело обрабатывает и выдаёт списки доступных свойств, методов, аргументов и т.д.
Re: [PHP] - не велосипед ли изобретаю?
Добавлено: 2008-05-29 12:27:28
jeehadina
zg писал(а):jeehadina писал(а):gz, (оффтом) а ты чем комменты парсишь потом?
я zg - ZlobnyGrif

)) парсит phpDoc, когда документацию подготавливает, эта встроенная фича зенд студии, он кстати валидно это всё дело обрабатывает и выдаёт списки доступных свойств, методов, аргументов и т.д.
ok, zg ))).
дело в том что я тоже phpDocumentor использую.
но я как-то не нашел способа с utf-8 его подружить.
так и мучаюсь, мля, коменты на буржуйском пишу

Re: [PHP] - не велосипед ли изобретаю?
Добавлено: 2008-05-29 12:40:01
zg
jeehadina писал(а):но я как-то не нашел способа с utf-8 его подружить.
так и мучаюсь, мля, коменты на буржуйском пишу

да я не особо с этим phpDoc разбирался, но дока генерится нормально (через раз, правда), значит как-то зендовцы его прикрутили, юзай зенд студию и не мучайся ))) пожизненная лицензия на ZS5,6 всего 300 буржуйских рублей стоит
Re: [PHP] - не велосипед ли изобретаю?
Добавлено: 2008-06-01 11:40:52
krilya
zg писал(а):парсит phpDoc, когда документацию подготавливает, эта встроенная фича зенд студии, он кстати валидно это всё дело обрабатывает и выдаёт списки доступных свойств, методов, аргументов и т.д.
вообще говоря это не фича Zend'a а вполне самостоятельный продукт
jeehadina писал(а):дело в том что я тоже phpDocumentor использую. но я как-то не нашел способа с utf-8 его подружить. так и мучаюсь, мля, коменты на буржуйском пишу

думаю стоить попробовать создать файл .htaccess и добавить туда "AddDefaultCharset utf-8", ну и не лишним будет обновить версию
http://www.phpdoc.org/downloads.php
Re: [PHP] - не велосипед ли изобретаю?
Добавлено: 2008-06-01 12:28:49
zg
krilya писал(а):вообще говоря это не фича Zend'a а вполне самостоятельный продукт

ну как бы да

фича - мастер, который позволяет легко и просто генерить доку
Re: [PHP] - не велосипед ли изобретаю?
Добавлено: 2008-06-01 12:42:37
krilya
спасибо за скрин, но с зендом я знаком

хотя сам его не юзаю, мне в принципе не обламывает один раз пхпдок настроить и потом вызывать с нужными опциями, можно в принципе ярлык сделать или кнопочку к тоталу
p.s. ну и стараюсь по максиму отвыкать от всяких виндовых мастеров, тупеешь от них...
