Klaus: Vergleichsoperator

Hallo,

ich will in einer if-Abfrage einen "zwischenwert" überprüfen:

<?php
$test = 59;
if($test = schwischen 50 und 60) {
 print "zwischen 50 u 60";
}
?>

gruß
Klaus

  1. Hi Klaus,

    if($test = schwischen 50 und 60) {

    ein "zwischen" gibt es in dem Sinne in PHP nicht. Stattdessen müsstest du also prüfen, ob der Wert größer 50 und kleiner 60 ist.

    Gruß,
    Andreas.

    1. Hi!

      if($test = schwischen 50 und 60) {
      ein "zwischen" gibt es in dem Sinne in PHP nicht. Stattdessen müsstest du also prüfen, ob der Wert größer 50 und kleiner 60 ist.

      Also:
      if ( $test > 50 && $test < 60 )
      oder vielleicht auch:
      if ( $test >= 50 && $test <= 60 )
      (Je nachdem, ob dein Wert auch noch 50 oder 60 sein darf.)

      Und es wäre noch zu erwähnen, daß der Vergleichsoperator nicht = ist.
      Das ist der Zuweisungsoperator. Zum Vergleich wird == oder === (zum typsicheren Vergleich) gebraucht.

      Bei dieser Version
      if($test = schwischen 50 und 60)
      mit nur einem Gleichheitszeichen würde der if-Block immer ausgeführt werden.
      Hier wird der Variable $test dann nämlich ein Wert zugewiesen und diese geglückte Zuweisung wird dann zu TRUE ausgewertet.

      Schöner Gruß,
      rob

      1. Hallo rob.

        Bei dieser Version
        if($test = schwischen 50 und 60)
        mit nur einem Gleichheitszeichen würde der if-Block immer ausgeführt werden.
        Hier wird der Variable $test dann nämlich ein Wert zugewiesen und diese geglückte Zuweisung wird dann zu TRUE ausgewertet.

        Nicht ganz korrekt: hierbei würde das Ergebnis der Zuweisung zurückgegeben und wenn dieses nicht zu FALSE evaluiert werden kann (0, Leerer String, etc.), dann ist der Ausdruck wahr. Vergleiche:

        if ($test = 1) {  
          
          echo "true";  
        } else {  
          
          echo "false";  
        }
        

        Ergibt „true“.

        if ($test = 0) {  
          
          echo "true";  
        } else {  
          
          echo "false";  
        }
        

        Ergibt „false“.

        Einen schönen Sonntag noch.

        Gruß, Mathias

        --
        ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
        debian/rules