Страница 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, когда документацию подготавливает, эта встроенная фича зенд студии, он кстати валидно это всё дело обрабатывает и выдаёт списки доступных свойств, методов, аргументов и т.д.
zde.png

Re: [PHP] - не велосипед ли изобретаю?

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

Re: [PHP] - не велосипед ли изобретаю?

Добавлено: 2008-05-29 12:40:01
zg
jeehadina писал(а):но я как-то не нашел способа с utf-8 его подружить.
так и мучаюсь, мля, коменты на буржуйском пишу :D
да я не особо с этим phpDoc разбирался, но дока генерится нормально (через раз, правда), значит как-то зендовцы его прикрутили, юзай зенд студию и не мучайся ))) пожизненная лицензия на ZS5,6 всего 300 буржуйских рублей стоит

Re: [PHP] - не велосипед ли изобретаю?

Добавлено: 2008-06-01 11:40:52
krilya
zg писал(а):парсит phpDoc, когда документацию подготавливает, эта встроенная фича зенд студии, он кстати валидно это всё дело обрабатывает и выдаёт списки доступных свойств, методов, аргументов и т.д.
вообще говоря это не фича Zend'a а вполне самостоятельный продукт :)
jeehadina писал(а):дело в том что я тоже phpDocumentor использую. но я как-то не нашел способа с utf-8 его подружить. так и мучаюсь, мля, коменты на буржуйском пишу :D
думаю стоить попробовать создать файл .htaccess и добавить туда "AddDefaultCharset utf-8", ну и не лишним будет обновить версию http://www.phpdoc.org/downloads.php

Re: [PHP] - не велосипед ли изобретаю?

Добавлено: 2008-06-01 12:28:49
zg
krilya писал(а):вообще говоря это не фича Zend'a а вполне самостоятельный продукт :)
ну как бы да :) фича - мастер, который позволяет легко и просто генерить доку
phpdoc.PNG

Re: [PHP] - не велосипед ли изобретаю?

Добавлено: 2008-06-01 12:42:37
krilya
спасибо за скрин, но с зендом я знаком :)
хотя сам его не юзаю, мне в принципе не обламывает один раз пхпдок настроить и потом вызывать с нужными опциями, можно в принципе ярлык сделать или кнопочку к тоталу :)

p.s. ну и стараюсь по максиму отвыкать от всяких виндовых мастеров, тупеешь от них... ;)