Philipp Hasenfratz: mt_srand funktionen übergreifend?

Beitrag lesen

Halihallo AllesMeins

eine kleine Frage: Ist mt_srand() funktionenübergreifend, sprich reicht es wenn ich es oben in das Hauptscript einbaue oder muss der Kram in jede Funktion mit rein?

(mt_|)srand() ist funktionsübergreifend. Es muss (ja sogar: sollte)
nur einmal am Script-Start aufgerufen werden. Alles andere ist reine
Performanceverschwendung und wird bei (sehr) alten PHP-Versionen
sogar zur Vernichtung jedwelchem "Zufälligkeitscharakters" führen,
falls der Random-Seed mit einem nicht wechselnden Integer (wie des
öfteren mal time(), falls das Script nicht länger als 1s für dessen
Terminierung braucht) initiiert wird.
Neuere Versionen von PHP schliessen erneutes aufrufen von srand()
grundsätzlich aus (eben weil es falsch ist!) und seit PHP 4.2.0
braucht man srand() gar nicht erst aufzurufen, denn dies geschieht
automatisch.

Fazit: PHP<4.2.0  => (mt_|)srand() nur am Anfang und einmalig im
                     Script.
       PHP>=4.2.0 => gar nicht mehr aufrufen.

Viele Grüsse

Philipp

--
M$: Patches - don't.