• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mit $Check

Furien

Mitglied
Hi Forumgemeinde,
ich arbeite mich gerade in PHP ein und bin gerade auf ein Problem gestoßen.
Bei Quakenet habe ich gelesen, dass folgender Befehl

PHP:
$check = "max" == $var;

den Wert max mit dem Wert der variable vergleicht und true oder false in der Variable $check speichert.

Nun schreibe ich echo $check; und nichts wird ausgegeben. Könnt ihr mir da helfen?


(Wert der Variable $var ist übrigens max^^)
 
Werbung:
so, wie du den code hast, kann da nix draus werden.
wenn true oder false gesetzt werden sollen, musst du einen if-zweig setzen.

Nils aka XraYSoLo
 
Kannst du mir vielleicht ein Beispiel geben?

Ich glaube, ich habe es hinbekommen:

PHP:
$var = 'maxi';
If ("max" == $var)
echo 'Max ist Max';

So wird nichts ausgegeben, wenn ich max in die var schreibe, kommt Max ist Max^^
Ist das denn so richtig?
 
Werbung:
du setzt $check auf max und kannst damit weiterarbeiten:

PHP:
<?php
$check = 'max';

if($check == 'max')
   {
   //anweisung
   }
      else
           {
           //andere anweisung
           }
?>

Nils aka XraYSoLo
 
Ist meine Lösung denn auch Richtig?
D.h. wenn ich nur bezwecken will, dass der Text Max ist Max nur angezeigt wird, wenn der Inhalt der var = max ist?
 
Werbung:
Ja
Aber: Zwar sind bei einzeiligen If-Anweisungen keine geschweiften Klammern nötig, aber zur besseren Übersichtlichkeit sollte man die trotzdem immer nutzen.

MfG Icy
 
so, wie du den code hast, kann da nix draus werden.
wenn true oder false gesetzt werden sollen, musst du einen if-zweig setzen.
Nö, was er da stehen hat ist völlig richtig. Der Vergleichsoperator == liefert einen Wahrheitswert, und durch den Zuweisungsoperator wird der dann eben der Variablen zugewiesen. Ein echo sollte dann eigentlich 1 oder sowas ausgeben. Nachvollziehbar auch z.B. durch var_dump('foo' == 'bar') => bool(false)

Furien: Ja, dein Code ist auch richtig, gewöhn dir aber am besten gar nicht erst an die Klammern bei if und co wegzulassen, das schadet (von ein paar Ausnahmen vielleicht abgesehen) nur der Lesbarkeit und verursacht schnell Fehler.

EDIT: Hmm, zweiten Teil ignorieren, der kam "etwas" spät :roll:
 
Okay danke.
Ich habs jetzt auch noch mal anders gemacht. Ich glaube es ist von Quake etwas komisch erklärt:
PHP:
$check = "max" == $var;   // prüft den Inhalt und speichert true oder false in $check
Hier ist jetzt mein Code:

PHP:
//Richtig oder Falsch
$var = 'maxi';

If ("max" == $var)
{
$check = 'true';
}
  else
  {
  $check = 'false';
  }
If ($check == 'true')
{
echo 'Max ist Max!';
}
  else
  {
  echo 'Max ist nicht Max!';
  }
Danke für eure, wie immer, tolle und schnelle Hilfe:D


E: Mir fällt gerade auf, dass ich beim ersten if gar kein else hätte machen müssen^^
Wenn der Wert true ist gibt er ja Max ist Max aus. Wenn da irgendwas anderes steht eben nicht.


EE:

Nö, was er da stehen hat ist völlig richtig. Der Vergleichsoperator == liefert einen Wahrheitswert, und durch den Zuweisungsoperator wird der dann eben der Variablen zugewiesen. Ein echo sollte dann eigentlich 1 oder sowas ausgeben. Nachvollziehbar auch z.B. durch var_dump('foo' == 'bar') => bool(false)

Furien: Ja, dein Code ist auch richtig, gewöhn dir aber am besten gar nicht erst an die Klammern bei if und co wegzulassen, das schadet (von ein paar Ausnahmen vielleicht abgesehen) nur der Lesbarkeit und verursacht schnell Fehler.

EDIT: Hmm, zweiten Teil ignorieren, der kam "etwas" spät :roll:

Er gibt dann nur leider nichts aus.
Naja ist ja auch egal. Ich habe es jetzt ja mit If Regeln können.
 
Zuletzt bearbeitet:
Werbung:
Hier ist jetzt mein Code:
E: Mir fällt gerade auf, dass ich beim ersten if gar kein else hätte machen müssen^^
Wenn das alles an Code ist, dann hättest Du auch gar nicht das zweite if und die Variable $check gebraucht, weil Du direkt eine Meldung ausgeben könntest. Du kannst auf jeden Fall auf das zweite if verzichten, und im ersten if nicht nur $check setzen, sondern gleichzeitig auch die Meldung ausgeben.

Er gibt dann nur leider nichts aus.
Naja ist ja auch egal. Ich habe es jetzt ja mit If Regeln können.
Nur wenn man was lesbar in eine Zeile schreiben kann, dann ist es übersichtlicher, als 20 Zeilen ifs. Ich bin auch der Meinung, dass das klappen muss, evtl. könntest Du mal Klammern setzen, dann wirds zumindest auch lesbarer, weil man nicht überlegen muss, was letztendlich zuerst ausgeführt wird. Und lesbarer finde ich es, wenn erst der Variablenname kommt und dann der Wert, auf den geprüft wird.
PHP:
$check = ($var == "max");
 
Umgekehrt isses aber sicherer, wenn man ma aus Versehen keinen Vergleich sondern eine Zuweisung codet.

Gruß thuemmy
 
Hmmm...stimmt. Hab ich aber noch nie gesehen, dass das jemand so macht. Wieder was gelernt ;-)
Dass ich das noch nie gesehen habe, liegt wahrscheinlich daran, dass ich nur von fähigen Programmierern umgeben bin, die solche Fehler niiieeeee machen, mich eingeschlossen! *hust* ;-)
 
Werbung:
Der Gnu-C-Compiler, der sagt Dir, dass das eventuell ein Fehler sein könnte, wenn Du die schärfste Compile-Stufe einstellst.

Gruß thuemmy
 
Zurück
Oben