我用PHP编写函数,为给定的银行帐户生成克罗地亚IBAN。我可以轻松地为返回任何IBAN重写。问题是我认为它既不优化,也不优雅。这是一项功能:
function IBAN_generator($acc){
if(strlen($acc)!=23)
return;
$temp_str=substr($acc,0,3);
$remainder =$temp_str % 97;
for($i=3;$i<=22;$i++)
{
$remainder =$remainder .substr($acc,$i,1);
$remainder = $remainder % 97;
}
$con_num = 98 - $remainder;
if ($con_num<10)
{
$con_num="0".$con_num;
}
$IBAN="HR".$con_num.substr($acc,0,17);
return $IBAN;
} 有更好的方法来生成IBAN吗?
发布于 2014-01-16 13:33:47
乍一看,你似乎不能让它变得更快,它只是简单的字符串附加序列。除非您不得不使用它数千次,这对您的应用程序来说是一个瓶颈,否则我不会浪费时间让它变得更好,这可能需要几微秒,而仅仅升级PHP版本可能会比您实现的代码更改更好。
如果您真的需要使它更快,可能的解决方案是-将它编写成扩展- APC op代码缓存(在解释代码时通常会加快速度)缓存会产生内存(只有当应用程序多次运行相同的输入时,这可能不是像这样的简单算法的常见情况)。
如果你想玩它,并试图使它更快,小心,你可以改变逻辑,并引入一个错误。始终使用单元测试,或者在更改测试用例之前编写一些测试用例,这是一个很好的实践。
发布于 2014-02-25 10:21:12
https://stackoverflow.com/questions/21162994
复制相似问题