モジュラス10ウエイト3のチェックデジット

必要があって書いた

<?php
    function mod10( $value, $weight = 3 )
    {
        $length = strlen( $value );
        $v      = strrev( $value );
        
        $sum = 0;
        for($i=0;$i<$length;$i++)
        {
            //偶数列
            $char = (int)$v[$i];
            //奇数列
            if( $i % 2 == 0 ){                                                                                                                                  
                $char = (int)$v[$i] * $weight;
            }
            $sum += $char;
        }

        $cd = 10 - ($sum % 10);
        if($cd == 10 ){
            $cd = 0;
        }
        return $cd;

    }