Andreas Korthaus: guter Code/Stil ...

Beitrag lesen

Hallo!

SESSION_REGISTER("lids");
benutze besser das "super global"- Array $_SESSION
Kenne ich nicht - kannst du mir das mal genaue erklären?

Im Manual zu session_register() ist das erklärt: http://de3.php.net/session-register

siehe auch: http://de3.php.net/session und http://www.dclp-faq.de/q/q-sessions-wie.html

zufall();
Funktionsaufruf steht vor der Funktionsdefinition, das funktioniert zwar, empfinde ich persönlich aber als schlechten Stil.

Wieso? Ich finde es immer nervig wenn am Anfang eines Scriptes zig lange Funktionen stehen und man die eigentliche "Script-Logik" erst mühsam suchen muss. Wenn die Funktionen am Ende stehen ist das zumindest für mich angenehmer.

function zufall ()
schlecht gewählter Funktionsname
ist doch scheiss egal!

Jetzt, aber später kann es verhängnisvoll sein ;-)

{
global $max, $id, $lids, $lid;
global ist meistens unnötig und ist im Hinblick auf vernünftige
Modularisierung kontraproduktiv.
wie kann ich es denn asutrixen? wenn ich es weglasse geht nix, dann müsste ich den funktionsaufruf anders gestalten.

Es kommt drauf an, wenn die Daten sich eigentlich nicht ändern sollen(z.B. $max), dann kann man das IMHO durchaus über globale Variablen machen, je nachdem vielleicht sogar nur innerhalb der Funktion definieren, oder vielleicht besser über Konstanten.

Mich würde mal interessieren wie Ihr das machen würdet. Ich würde es vermutlich in etwas so machen, wobei ich vermutlich nichtmal eine Funktion verwenden würde, naja.

<?php

define('RAND_MAX', 5);
mt_srand ((double)microtime()*1000000);
session_start();

$_SESSION['lids'][] = zufallszahl_generieren($_SESSION['lids']);

function zufallszahl_generieren ( &$zahlenarray) {
    do {
        $tmp_rand = mt_rand(0, RAND_MAX);
    }
    while (in_array($tmp_rand, $zahlenarray));
    return $tmp_rand;
}

?>

Grüße
Andreas