Forenindex » Programmierung/Entwicklung » PHP und MySQL » variablen zurücksetzten ?

variablen zurücksetzten ?

blueillusion
Beiträge gesamt: 12

17. Jun 2003, 14:00
Bewertung:

gelesen: 1089

Beitrag als Lesezeichen
hallo

ich habe folgendes kleines script das eigentlich ganz gut funktioniert:

$myRandom = rand (1, 2);

if ($myRandom = 1) {

$myColor = "green";

} else {

$myColor = "orange";

}

nur wenn ich im browser ein refresh mache kommt immer der gleiche variablen wert. es scheint mir als ob $myRandom nach dem ersten mal ausführen immer den gleichen wert behält.

jemand eine idee was ich falsch mache?

gruss

variablen zurücksetzten ?

Pozor
Beiträge gesamt: 892

17. Jun 2003, 14:42
Bewertung:

gelesen: 1089

Beitrag als Lesezeichen
hallo,

ich habe dein skript nicht probiert aber zur sicherheit solltes du immer srand() vor der Funktion rand() ausführen, um sicherzustellen, dass rand mit einem anderen startwert seine pseudozufallszahl erechnet. ev könnte es an diesem liegen.

gruss Pozor

PS: ist der effekt der selbe wenn du die variable vor der zuweisung mit unset() löschst?

variablen zurücksetzten ?

oesi50
  
Beiträge gesamt: 2315

17. Jun 2003, 17:14
Bewertung:

gelesen: 1089

Beitrag als Lesezeichen
hi blue,
probier mal das:
<?
srand (); # Nur einmal beim Programmstart verwenden
$myRandom = rand (0,1);
$myColors = Array("green","orange");
echo $myColors[$myRandom];
?>
Das sieht aber nicht so ganz zufällig aus, weil bei 2 Zufallszahlen die Wahrscheinlichkeit 50-50 ist, dass sie auch wirklich wechseln.
Bsp: Casino rot-rot-rot-schwarz-rot-rot-rot-schwarz-...
Grüße Oesi
PS: bei Vergleichsoperatoren nimm bitte immer == statt =.

(Dieser Beitrag wurde von oesi50 am 17. Jun 2003, 17:17 geändert)

variablen zurücksetzten ?

Pozor
Beiträge gesamt: 892

17. Jun 2003, 18:18
Bewertung:

gelesen: 1089

Beitrag als Lesezeichen
hallo,

das was osi gesagt hat deckt dein fehler auf..
dein code stimmt bis auf eine kleinigkeit
if ($myRandom = 1) ist falsch:
es hat den effekt dass die bedingung immer ok ist und das $myRandom immer 1 ist, da ihm 1 zugewiesen wird..

richtig ist natürlich
if ($myRandom == 1)

kleiner tipp um solch fehler zu vermeiden:

schreibe bedingungen immer so:

if (1 == $myRandom)
ist dasselbe wie oben, nur wenn ein = vergessen wird meldet es der PHP-parser und so erkennt man schnell flüchtigkeitsfehler..

gruss Pozor

so ist alles ok:

srand();
$myRandom = rand (1, 2);

if (1 == $myRandom)
{
$myColor = "green";
}
else
{
$myColor = "orange";
}

(Dieser Beitrag wurde von Pozor am 17. Jun 2003, 18:20 geändert)

variablen zurücksetzten ?

blueillusion
Beiträge gesamt: 12

18. Jun 2003, 12:22
Bewertung:

gelesen: 1089

Beitrag als Lesezeichen
hallo allerseits.

vielen dank für die hilfe! die seite funktioniert.

gruss