Regenbogenjonny: Warum verlangt php hier einen expliziten Stringvergleich?

Beitrag lesen

Hallo Forum,

ich habe hier folgende Methode:

    protected function doChecks() {
        if ($this->watermarkfile == "0") { ...

In $this->watermarkfile steht, wenn ich es per echo mal ausgeben lasse, vor der if-Abfrage der Pfad zum Wasserzeichen drin, somit wird nicht in die if-Bedingung hinein gesprungen, sondern in die anschließende else-Bedingung.

Wenn ich aber die Methode so notiere:

    protected function doChecks() {
        if ($this->watermarkfile == 0) { ...

Dann wird die if-Bedingung als "true" gewertet und das Script macht innerhalb der if-Bedingung weiter.

Das hätte ich nicht erwartet. Kann mir jemand erklären, warum das so ist? Ich hätte gedacht, dass mein Pfad (der ja in $this->watermarkfile drin steht, sowohl != "0", wie auch != 0 wäre.

Jonny