phpbar.de logo

Mailinglisten-Archive

[php] if verschachteln (war: Re: isset)

[php] if verschachteln (war: Re: isset)

Martin Samesch martin.samesch_(at)_vogelspinnenseite.de
Thu, 17 Aug 2000 20:35:07 +0200


Guido Haeger wrote:
> 
> Martin Samesch schrieb
> 
> > Ohne mir das jetzt konkret ueberlegt zu haben, koennte es bei
> > einer Kombination von fuenf voneinander abhaengigen
> > Fallunterscheidungen aber etwas aufwendig werden, wenn
> > ich alle Kombinationen beruecksichtigen will (?).
> 
> OK ein Beispiel mit 8 aufeinander aufbauenden Datenbankabfragen:
> 
> [....]

Ok, koennte etwas unuebersichtlich werden. ;-)

> Man könnte z.B. alternativ schreiben
> 
> if(DA == "a")
> {
>     $a = 1;
> }
> else
> {
>     fehler_handling("a");
> }
> 
> if($a == 1)
> {
>     if(DA == "b")
>     {
>         $b = 1;
>     }
>     else
>     {
>         fehler_handling("b");
>     }
> }
> 
> [...]

Damit haette ich auch die Abhaengigkeiten beruecksichtigt....

> Man könnte hier auch einfach
>  schreiben:

....hier muesste dazu aber noch was rein....

> $bedingungen = array("a", "b", "c", "d", "e", "f", "g", "h");
> $max = count($bedingungen);
> for($i = 0; $i < $max, $i++)
> {
>     if(DA != $bedingungen[$i])
>     {
>         fehlerhandling($bedingung[$i]);
>         break;
>     }
> 
>     if($max-1 == $i)
>     {
>         // tu was;
>     }
> }
>
> Man könnte die einzelnen Abfragen auch in Funktionen stecken usw. Kurz:
> es gibt viele Möglichkeiten unübersichtlichen, tief verschachtelten Code
> zu vermeiden, ohne das sich deshalb z.B. die Anzahl der
> Datenbankzugriffe erhöht.

Das hatte ich mir auch schon ueberlegt.

> Das Beispiel krankt insgesamt natürlich daran, daß man eine
> entsprechende Logik in der Regel einfach per AND in der WHERE-Klausel
> der Datenbankabfrage erschlagen würde.

So werde ichs wohl machen.

Besten Dank.

Jedenfalls wars nicht einfach, alle Moeglichkeiten zu beruecksichtigen,
aber so wie es jetzt ist, kanns nicht bleiben, weil ich bei jeder
Aenderung mehr oder weniger von vorne anfangen kann (Wie war das noch
gleich? Warum habe ich dies oder jenes so gemacht und nicht so?....).
Demnaechst ist wohl ein kleiner Umbau faellig.

Martin


php::bar PHP Wiki   -   Listenarchive