Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Variable in einem PHP Script in Schleifen?

0 views
Skip to first unread message

Heiko Warnken

unread,
Nov 6, 2009, 12:41:40 AM11/6/09
to
Hallo Leute,

Wenn ich für mehrere FOR-Schleifen innerhalb eines Script
die gleiche Variable verwende, wird die zweite Schleife
nicht ausgeführt. Warum eigentlich? Hier ein Beispiel, das
NICHT funktioniert:

<?PHP
$zahl=0;
for ($zahl == 1 ; $zahl < 13 ; $zahl++)
{
echo $zahl;
}

$zahl=0;
for ($zahl == 1 ; $zahl <10 ; $zahl++)
{
echo $zahl;
}
?>

Also in diesem Script wird bei mir die zweite FOR-Schleife
nicht durchlaufen.
Wenn ich nach dem zweiten $zahl=0 ein Echo $zahl einsetze,
wird mir wie erwartet eine 0 ausgegeben.
Ändere ich die Variable $zahl in der 2. Schleife, läuft
alles wie erwartet.
Habe ich irgendwo einen logischen Fehler, den ich nicht sehe?

Gruß
Heiko

Niels Braczek

unread,
Nov 6, 2009, 2:31:23 AM11/6/09
to
Heiko Warnken schrieb:

> <?PHP

<?php


> $zahl=0;
> for ($zahl == 1 ; $zahl < 13 ; $zahl++)

for ($zahl = 1 ; $zahl < 13 ; $zahl++)

> {
> echo $zahl;
> }
>
> $zahl=0;
> for ($zahl == 1 ; $zahl <10 ; $zahl++)

for ($zahl = 1 ; $zahl <10 ; $zahl++)

> {
> echo $zahl;
> }
> ?>

> Habe ich irgendwo einen logischen Fehler, den ich nicht sehe?

Ja: == ist nicht =.

MfG
Niels

--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · e-Commerce · Joomla! Content Management |
------------------------------------------------------------------

Claus Reibenstein

unread,
Nov 6, 2009, 2:44:13 AM11/6/09
to
Heiko Warnken schrieb:

> Wenn ich für mehrere FOR-Schleifen innerhalb eines Script
> die gleiche Variable verwende, wird die zweite Schleife
> nicht ausgeführt. Warum eigentlich?

Weil Deine Schleifenkonstruktion kaputt ist.

> Hier ein Beispiel, das
> NICHT funktioniert:
>
> <?PHP
> $zahl=0;
> for ($zahl == 1 ; $zahl < 13 ; $zahl++)

^^

Das ist sicher falsch. An dieser Stelle steht üblicherweise eine
Zuweisung (Startwert), kein Vergleich. Ein Vergleich wäre hier auch
vollkommen sinnfrei.

Allerdings ergäbe dann die Zuweisung vor der Schleife auch keinen Sinn.

> {
> echo $zahl;
> }

Die Zahl, die hier als erste ausgegeben wird, hätte Dich eigentlich
schon stutzig machen müssen.

> $zahl=0;
> for ($zahl == 1 ; $zahl <10 ; $zahl++)

^^

Gleiches Problem wie oben.

> {
> echo $zahl;
> }
> ?>
>
> Also in diesem Script wird bei mir die zweite FOR-Schleife
> nicht durchlaufen.

Bei mir schon. Die Ausgabe lautet:

01234567891011120123456789

Genau diese Ausgabe hatte ich aufgrund Deines Programms auch erwartet.

Wie sieht denn Dein Ergebnis aus?

Gruß. Claus

Heiko Warnken

unread,
Nov 7, 2009, 3:15:17 AM11/7/09
to
Am 06.11.2009 08:44, schrieb Claus Reibenstein:
> Heiko Warnken schrieb:
>
>> Wenn ich für mehrere FOR-Schleifen innerhalb eines Script
>> die gleiche Variable verwende, wird die zweite Schleife
>> nicht ausgeführt. Warum eigentlich?
> Die Zahl, die hier als erste ausgegeben wird, hätte Dich eigentlich
> schon stutzig machen müssen.

Nö, warum? Es wird eine 1 ausgegeben.

>> Also in diesem Script wird bei mir die zweite FOR-Schleife
>> nicht durchlaufen.
>
> Bei mir schon. Die Ausgabe lautet:
>
> 01234567891011120123456789
>
> Genau diese Ausgabe hatte ich aufgrund Deines Programms auch erwartet.
>
> Wie sieht denn Dein Ergebnis aus?

Mein Ergebnis sieht so aus:
Schleife 1:
123456789101112

Und aus Schleife 2:
keine Ausgabe
Gruß
Heiko

Heiko Warnken

unread,
Nov 7, 2009, 3:15:59 AM11/7/09
to
Am 06.11.2009 08:31, schrieb Niels Braczek:
> Heiko Warnken schrieb:
>
>> <?PHP
>
> <?php
>
>
>> $zahl=0;
>> for ($zahl == 1 ; $zahl< 13 ; $zahl++)
> Ja: == ist nicht =.

Ups! Danke.
Gruß
Heiko

Claus Reibenstein

unread,
Nov 7, 2009, 8:11:22 AM11/7/09
to
Heiko Warnken schrieb (Leerzeilen zwecks besserer Lesbarkeit eingefügt):

> Am 06.11.2009 08:44, schrieb Claus Reibenstein:
>
>> Heiko Warnken schrieb:
>>
>>> Wenn ich für mehrere FOR-Schleifen innerhalb eines Script
>>> die gleiche Variable verwende, wird die zweite Schleife
>>> nicht ausgeführt. Warum eigentlich?
>>
>> Die Zahl, die hier als erste ausgegeben wird, hätte Dich eigentlich
>> schon stutzig machen müssen.
>
> Nö, warum? Es wird eine 1 ausgegeben.

Dann ist das Programm, welches Du gepostet hast, nicht das, welches Dir
Probleme bereitet.

Gruß. Claus

0 new messages