MudGuard: Kreditkartenprüfung Luhnalgorythmus->Probleme

Beitrag lesen

Hi,

Wenn schon verbessern, dann auch konsequent ;-)

if ($currentNum>=10)

{
$currentNum ist hier immer eine Zahl, durch die Multiplikation mit 2 im vorherigen Schritt.

Da die Zahl aus der Verdoppelung einer einzigen Ziffer entstanden ist und größer als 9 ist, ist die erste Ziffer immer eine 1 (2*9 ist 18)
Das umständliche Ermitteln der ersten Ziffer aus dem String kann also komplett entfallen, die erste Ziffer ist 1.

$secondNum = substr($currentNum, 1, 1);
                $currentNum = $firstNum + $secondNum;

Die erste Ziffer braucht nicht ermittelt zu werden, die kann fix als 1 angesetzt werden, da $currentNum ja >= 10 ist, und maximal 18 sein kann.

d.h.
$currentNum = 1 + $secondNum;

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.