Forum Doku Wiki Blog

Forumsarchiv 2007, Oktober
If..then..else Verschachtelung

archivierte Beiträge lesen

  1. (PHP) If..then..else Verschachtelung von ChrisL, 08. 10. 2007, 08:59

If..then..else Verschachtelung

Der folgende Beitrag wurde am 08. 10. 2007, 08:59 Uhr von ChrisL veröffentlicht.

Hallo

Ich weiss das Problem ist für Profis banal, aber ich probiere schon seit einer Stunde und bekomme es einfach nicht hin.


Beispiel:

if ($kriterium1 == 0)

if ($kriterium2 == 0) {
Codezeile;
Codezeile;
}

else {
Codezeile;
Codezeile;
}

Wie setzte ich die Klammern richtig, damit sich 'else' auf $kriterium1 bezieht und nicht auf $kriterium2 wie im Moment.

Logisch fände ich...

if ($kriterium1 == 0) {

if ($kriterium2 == 0) {
Codezeile;
Codezeile;
}

} else {
Codezeile;
Codezeile;
}

... aber so geht es gar nicht.

Danke schonmal im Voraus und sorry falls ich Euch mit der Frage langweile ;)

cu
Chris

If..then..else Verschachtelung

Der folgende Beitrag wurde am 08. 10. 2007, 09:18 Uhr von seth veröffentlicht.

gudn tach!

> Wie setzte ich die Klammern richtig, damit sich 'else' auf $kriterium1 bezieht und nicht auf $kriterium2 wie im Moment.
>
> Logisch fände ich...
>
> if ($kriterium1 == 0) {
>
> if ($kriterium2 == 0) {
> Codezeile;
> Codezeile;
> }
>
> } else {
> Codezeile;
> Codezeile;
> }
>
> ... aber so geht es gar nicht.

dann liegt der fehler woanders, denn dein logikverstaendnis truegt dich nicht. am beispiel wird's klarer:

if(A){
  // A
  if(B){
    // A && B
  }else
    // A && not B
  }
}else
  // not A
}


die else-zweige koennen unabhaengig voneinander weggelassen werden, also z.b. (in deinem fall)

if(A){
  // A
  if(B){
    // A && B
  }
}else
  // not A
}


oder (was du nicht willst)

if(A){
  // A
  if(B){
    // A && B
  }else{
    // A && not B
  }
}


prost
seth

If..then..else Verschachtelung

Der folgende Beitrag wurde am 08. 10. 2007, 09:55 Uhr von ChrisL veröffentlicht.

Hallo seth

Vielen Dank!

War einer von der Sorte 'vor lauter Bäume den Wald nicht sehen'.

PHP und VBA verträgt sich schlecht, eine der Codezeilen war...
$ts = now();

Thx again und gute Woche
Chris

If..then..else Verschachtelung

Der folgende Beitrag wurde am 08. 10. 2007, 12:11 Uhr von Dennis veröffentlicht.

Hi ChrisL,


> PHP und VBA verträgt sich schlecht, eine der Codezeilen war...
> $ts = now();

Tipp: Schalte error_reporting auf E_ALL oder E_STRICT, dann bekommst du beim Entwickeln auch vernünftige Fehlermeldungen, in diesem Fall wäre etwas à la "Fatal Error: call undefined function now" oder so gekommen. Unter den Datums- und Zeitfunktionen im PHP-Manual findet sich dann schnell die gewünschte Funktion ;-)


Viele Grüße,
  ~ Dennis.
--
Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|

Weblog: Comboboxen mit Javascript - apr_dbd_mysql unter Debian - so geht es doch \[Update]

Fehlermeldungen anzeigen lassen

Der folgende Beitrag wurde am 08. 10. 2007, 12:30 Uhr von dedlfix veröffentlicht.

echo $begrüßung;

> Tipp: Schalte error_reporting auf E_ALL oder E_STRICT, dann bekommst du beim Entwickeln auch vernünftige Fehlermeldungen,

E_STRICT ist ein einzelnes Bit, E_ALL hingegeben steht (derzeit = PHP5) für alles andere außer E_STRICT. Beide Konstanten sind also nichts das alternativ verwendet werden könnte, was dein "oder" aber normalerweise ausdrückt. Hinzu kommt noch, dass E_STRICT nur für OOP relevant wird, also für einen Großteil der PHP-Anwender nicht relevant wird.

Zusammengefasst: E_ALL für das error_reporting ist beim Entwickeln immer eine gute Idee, auch schon unter PHP4. E_STRICT kann man meist unbeachtet lassen. Außerdem braucht es noch ein eingeschaltetes display_errors, wenn man die Meldungen in der Ausgabe sehen möchte.


echo "$verabschiedung $name";

Fehlermeldungen anzeigen lassen

Der folgende Beitrag wurde am 08. 10. 2007, 23:44 Uhr von ChrisL veröffentlicht.

Nachmals Danke für die Hilfe allerseits. Ist echt nett und ich weiss die Unterstützung zu schätzen.

Fehlermeldungen anzeigen lassen

Der folgende Beitrag wurde am 09. 10. 2007, 09:39 Uhr von Blaubart veröffentlicht.

Tach.

> Hinzu kommt noch, dass E_STRICT nur für OOP relevant wird, also für einen Großteil der PHP-Anwender nicht relevant wird.

Mir fallen spontan noch Meckereien zu date.timezone/TZ/date_default_timezone_set() und "only variables should be assigned by reference" ein, die ebenfalls als E_STRICT laufen aber nicht direkt mit OOP zu tun haben.

--
Once is a mistake, twice is Jazz.

Fehlermeldungen anzeigen lassen

Der folgende Beitrag wurde am 09. 10. 2007, 12:02 Uhr von dedlfix veröffentlicht.

echo $begrüßung;

> > Hinzu kommt noch, dass E_STRICT nur für OOP relevant wird, also für einen Großteil der PHP-Anwender nicht relevant wird.
>
> Mir fallen spontan noch Meckereien zu date.timezone/TZ/date_default_timezone_set() und "only variables should be assigned by reference" ein, die ebenfalls als E_STRICT laufen aber nicht direkt mit OOP zu tun haben.

Danke für die Ergänzung. Die Übergabe von Nicht-Variablen per Referenz ist mir nur bei PHP 4.4.x auf die Füße gefallen, und da war/ist das eine E_NOTICE-Meldung. E_STRICT gibt es ja erst in PHP 5.

Bei date() & co. ist es mir auch noch nicht aufgefallen, denn ich hatte E_STRICT wegen des Einsatzes von alter Fremdsoftware zunächst nicht aktiviert. Die Date and Time Functions wären dann also nach meinem jetzigen Erkenntnisstand etwas, bei dem auch weniger fortgeschrittene Programmierer mit E_STRICT in Berührung kommen.

Für mich bleibt E_STRICT dennoch ein Nice-to-have, das keine so gravierenden Vorteile wie E_ALL bringt.


echo "$verabschiedung $name";

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4