我正在尝试从substr()的最后6位数字中添加所有数字。假设数字是19283774616,我试图从中得出结果:7 + 7 + 4 + 6 + 1 + 6 =?。这是我当前的代码
public function accountHash($accountNumber)
{
$result = 0;
$accountNumber = substr($accountNumber, -6);
for($i=0; $i<=strlen($accountNumber); $i++) {
$result += substr($accountNumber, $i, 1); // A non-numeric value encountered here
}
echo $result;
}
从上面的函数中,发生“遇到非数值”错误。需要有关如何执行此操作的建议。谢谢
您尝试获取的字符数多于字符串包含的字符数。在条件表达式中将“ <=”替换为“
for($i=0; $i<=strlen($accountNumber); $i++) {
to
for($i=0; $i<strlen($accountNumber); $i++) {
在for循环中,您需要使用<
而不是<=
。
您可以用更简单的方法来做,
$result = 0;
for($i = 0; $i < 6; $i++){
$result += $string[-$i];
}