我在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吗?
答案 0 :(得分:1)
乍一看,似乎你不能让它更快,它只是简单的字符串追加序列。 除非你必须使用它数千次,这代表了你的应用程序的瓶颈,我不会浪费时间让它变得更好,它可能需要几微秒,而只是升级PHP版本可能会比代码更改更好地改进你实施了。
如果你真的必须加快速度,可能的解决方案就是 - 将函数写入扩展名 - APC操作码缓存(在解释代码时通常会使事情变得很快,因此全局提高速度) - 缓存结果在内存中(仅当您的应用程序多次运行相同的输入时,这可能不是像这样的简单算法的常见情况)
如果你想玩它并试着让它变得更快,小心,你可以改变逻辑并引入一个bug。始终使用单元测试,或在更改之前编写一些测试用例,这总是一个好的做法
答案 1 :(得分:0)