In de volgende methode is $length een hulpvariabele:


<?php
/**
 * @param  int $min Minimumlengte van het wachtwoord.
 * @param  int $max Maximumlengte van het wachtwoord.
 * @return string   Aselect wachtwoord.
 */
public static function getRandomPassword($min = 8, $max = 12)
{
    $password = (string) null;
    $length = mt_rand($min, $max);
    while (strlen($password) < $length) {
        ...
    }
    return $password;
}
?>


Dat kan korter en sneller, dacht ik, door de hulpvariabele te verwijderen:


<?php
public static function getRandomPassword($min = 8, $max = 12)
{
    $password = (string) null;
    while (strlen($password) < mt_rand($min, $max)) {
        ...
    }
    return $password;
}
?>


Deze tweede variant, zonder hulpvariabele, is echter significant langzamer. Wat is daarvan de logische verklaring?
In je tweede script moet er steeds (minstens 8 keer) een random getal worden gegenereerd.
In het eerste script slechts 1 keer.
Uiteraard is dat langzamer.
Haha, natuurlijk, helemaal overheen gelezen. Koffietijd!
Niet alleen langzamer.
Het doet niet het zelfde.

Het is zoals bij Russische roulette.

Bij de tweede methode wordt telkens de revolver opnieuw gedraaid, bij de eerste niet.

Dat maakt een meer dan substantieel verschil.

Reageren