if( <= ) help needed

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • if( <= ) help needed

    Hi
    gibt es ne möglichkeiten den unten stehenden code kleiner zuhalten?? is nicht die einzigste if abfrage deswegen wollte ich das bischen übersichtlicher halten!(er soll schauen ob die variable eine zahl zwischen 2-4 ist (2 und 4 eingeschlossen)
    PHP Code:
    <?
    //Schnippsel

    if($row['CS1'] <= "4" AND $row['CS1'] >= "2")
    {
    echo 'BlaBla';
    }
    Mfg Vincent M.
    Last edited by Firefly; 18-03-2005, 23:23.

  • #2
    hmm vielleicht mit switch. VIELLEICHT, kann man das CASE auch in der Art benutzen, aber das weiß ich nicht. Das müsstest Du einfach mal ausprobieren oder nachlesen, oder suchen.

    Vielleicht kannst Du im Case(IF()) oder so benutzen.. probiers aus!

    Grad gelesen:

    PHP Code:
    switch(true)
    {
       case (
    intval($_POST['age']) <= 21):
           echo 
    "age <= 21";
           break;
       case (
    intval($_POST['age']) <= 29):
           echo 
    "22 <= age <= 29";
           break;
       case (
    intval($_POST['age']) <= 65):
           echo 
    "30 <= age <= 65";
           break;
       default:
           echo 
    "age > 65";

    oder

    PHP Code:
    <?php
    echo ($i == 0) ?  "i is zero" :
         ((
    $i == 1) ?  "i equals 1" :
         ((
    $i == 2) ?  "i equals 2" ""));
    ?>
    CASE ( $j > 4 || $k <= 2 ) das || ist auch möglich, das hier war nur ein beispiel
    Last edited by xManUx; 18-03-2005, 23:31.

    Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
    sondern mit den Augen das Manual zu lesen.

    Comment


    • #3
      Wenn du schon vergleichsoperatoren für Zahlen einsetzt, solltest du auch nen Numeric Type verwenden.

      Hier 2 kürzere versionen:
      PHP Code:

      if($row['CS1'] <= AND $row['CS1'] >= 2)
        echo 
      'BlaBla';

      (
      $row['CS1'] <= && $row['CS1'] >= 2?echo 'blabla':NULL); 

      Comment


      • #4
        PHP Code:
        if ($row['CS1'] < && $row['CS1'] > 1) echo 'BlaBla'
        könnte geringfügig schneller sein.
        Am meisten kannst du aber rausholen, wenn es irgendwelche Einschränkungen für die zu testende Variable gibt.
        Wenn z.B. $row['CS1'] immer positiv ist, genügt
        PHP Code:
        if ($row['CS1']-4) echo 'BlaBla'
        Ob in diesem Fall die Berechnung (-1) wirklich schneller geht als ein zweiter Vergleich, weiß ich nicht. Aber manchmal kann man viele Vergleiche sparen, wenn man nur genug über den zu testenden Wert weiß.

        Hoppla, es ging dir gar nicht um Performance, hab ich verpeilt. Egal, vielleicht hilfts dir trotzdem.
        Last edited by onemorenerd; 19-03-2005, 09:36.

        Comment


        • #5
          Ein zweiter Vergleich wäre langsamer, die Berechnung ist schneller...
          Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
          var_dump(), print_r(), debug_backtrace und echo.
          Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
          Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
          Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

          Comment

          Working...
          X