kleines Php-Programm..findet jemand den Fehler?

Navewi

Grünschnabel
Hallo,

es geht um dieses kleine Programm:

<?php

$bmi = 19

if ($bmi<18.5){
echo "Sie sind untergewichtig.";
}
if (18.5>$bmi && $bmi>24.9){
echo "Sie sind normalgewichtig.";
}
if ($bmi>25){
echo "Sie sind übergewichig.";
}
?>

Macht an sich wenig Sinn das weiß ich :D, ist aber nur ein kurzes Test-Programm, da ich morgen Informatikklausur schreibe.
Also zum Problem: Im Browser wird nichts dargestellt, auch keine Fehlermeldung. Xampp ist installiert. Andere, auch sehr viel größere Programme, laufen problemlos. Also denke ich es ist nur ein kleiner Fehler, aber ich finde ihn nicht.
Kann mir schnell jemand helfen?

Danke und LG
 
Ich glaube, der Fehler liegt hier:
PHP:
if (18.5>$bmi && $bmi>24.9){
Muss wohl lauten:
PHP:
if ($bmi>18.5 && $bmi<24.9){
 
Ich tippe auf das fehlende Semikolon, dass in der dritten Zeile fehlt, also dort, wo Du der Variable $bmi den Wert zuweist. Außerdem wäre es bei Dir sinnvoller, wenn Du die Anweisungen zu einer zusammenbaust:
PHP:
$bmi = 19; # hier das fehlende Komma

if ( $bmi < 18.5 ) {
  echo 'Sie sind untergewichtig.';
} elseif ( $bmi > 25 ) {
  echo 'Sie sind übergewichtig.';
} else {
  echo 'Sie sind normalgewichtig.';
}

Nachtrag zu Sempervivums Beitrag darüber: das ist in PHP egal, solange es keine Zuweisung ist.
 
Was links und was rechts steht, ist natürlich egal. Es ist ein semantischer Fehler:
PHP:
if (18.5>$bmi && $bmi>24.9){
bmi kleiner als 18.5 und bmi größer als 24.9 ist nie erfüllt.
 
Genau genommen ist es in ihrem Beispiel so, dass die erste Aussage obsolet ist, wenn die zweite gilt, da x auch dann größer als 18.5 ist, wenn man x größer als 24.9 ist. Insofern ist es ein Denkfehler, aber kein Widerspruch.
 
einfach nur crack hat gesagt.:
Außerdem wäre es bei Dir sinnvoller, wenn Du die Anweisungen zu einer zusammenbaust

Ja. Oder auch so:

PHP:
$bmi = 19;

if ($bmi < 18.5) {
    // Untergewicht
} elseif ($bmi <= 25) {
    // Normalgewicht
} else {
    // Übergewicht
}

Diese Schreibweise verhindert auch recht zuverlässig, dass ein Wert komplett durchrutscht (wie 18.5 im Code in #1).
 

Neue Beiträge

Zurück