Hi,
ist das nicht die perfekte lösung?
es mag funktionieren, aber perfekt würde ich es nicht nennen
wenn es doch gut funktioniert warum nicht anwenden???
Wenn es funktioniert, ist das ein Indiz dafür, da Du nicht richtig getestet hast. Siehe auch Antwort von Lulu.
Merke Dir bitte: Man testet Software nicht auf Funktion sondern auf Fehler!
$max = '5';
Du möchtest einen Zahl (Integer) und keinen String oder?
$max = 5; ist doch eh nur n test später kommt die zuweisung aus der db
Ein Grund mehr, die Richtigkeit aller externen Variablen zu prüfen. (Größe und in Deinem Fall noch Typ).
zufall();
Funktionsaufruf steht vor der Funktionsdefinition, das funktioniert zwar, empfinde ich persönlich aber als schlechten Stil.
ja ok
Einfaches Beispiel warum das unter anderem schlecht ist: das Script wird von Anfang zum Ende geparst. Wenn nun die Benutzung vor der Defnition kommt, muß doppelte Arbeit geleistet werden.
function zufall ()
schlecht gewählter Funktionsname
ist doch scheiss egal!
Gut gewählte Funktionsnamen erleichtern spätere Arbeit ungemein. Glaub's uns, wir haben auch aus unseren Fehlern lernen müssen ;-)
{
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.
Dann mußt Du den Funktionsaufruf eben anders gestalten. Noch ein Problem damit: hier "if ($lid == $id) zufall();" ist ein rekursiver Aufruf. Wegen der globalen Variablen ist diese Funktion aber nicht reentrant. Das funktoniert bei PHP weil dort "global" keine wirklich globalen Variablen erzeugt, aber mach es trotzdem nicht, das geht meist in's Auge.
Deine Funktion hat keinen Rückgabewert
jetzt schon, aber ich häng noch an den oberen probs
Warum nimmst Du eigentlich nicht die von PHP angebotenen hauseigenen SessionIDs? Oder eine MD5Sum über Microtime? Alles deutlich einfacher und sicherer.
so short
Christoph Zurnieden