Frage von xBlackMass, 29

Was bedeutet das in PHP?

if($variable)

{ echo "text";

}

In der Bedingung steht kein Vergleichsoperator, wie == oder != was bedeutet das dann?

danke

Antwort
von LeonardM, 22

$variable ist in dem fall vom Daten rückgabetyp ein bool. Du prüfst imprinzip ob $variable dem wert true entspricht. Funktioniert auch mit funktionen und rückgabewert bool

Kommentar von osworx ,

Nicht wirklich, denn die Variable könnte auch etwas anderes als an boolscher Wert sein.

Besser wäre

if( isset( $variable ) ) {
// was auch immer damt passieren soll
}

oder

if( !empty( $variable ) ) {
// was auch immer damit passieren soll
}

Beides prüft im Prinzip ab ob diese Variable überhaupt gesetzt wurde (empty()) oder mit einem Wert belegt ist (isset() ).

Denn wurde die Variable nicht definiert oder gesetzt, wird es eine 'nette' Fehlermeldung geben.

Bin immer wieder überrascht welche Fragen hier gestellt werden, anscheinend haben die Leute das vorherige Suchen danach und das Lesen verlernt.

Oder es ist modern geworden dumme Fragen so mir nichts dir nichts irgendwo zu stellen.

Kommentar von LeonardM ,

ich bin davon ausgegangen das die variable sicher existiert und ein bool ist, warum sollte sonst auch diese abfrage so sein? ich meine wenn ich eine variable definiere wird sie im normalfall auch meinen wert haben. da muss ich nicht prüfen ob sie deklariert ist und ob der typ passt. wäre an manchen stellen angebracht was du meinst aber grade bei dieser frage gings ja nur ums Verständnis

Antwort
von tDoni, 21

du könntest geauso schreiben:

if($variable == true)
Kommentar von Bluewater1403 ,

Wenn Du den Zustand eine Variable des Typs Boolean abfragst solltest Du immer '===' verwenden

Kommentar von tDoni ,

Stimmt, hier will ich aber auch nicht auf den Typ Prüfen.

Wie happzfish2 schon geschrieben hat, prüft ich damit, ob die Variable nicht "null", nicht "false" und nicht "0" ist.

Antwort
von happyfish2, 18

Das heißt, die Variable ist gesetzt und hat einen Wert der nicht "null", nicht "false" und nicht "0" ist.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten