Start · Sprachen · PHP · Referenz · Type Juggling

Type Juggling

Konzept

PHPs automatische Typ-Konvertierung bei loose comparisons und arithmetischen Operationen — Quelle vieler Bugs.

seit PHP 4.0.0 Kategorie: misc

Signatur

$a == $b // loose comparison mit Type-Konvertierung

Beschreibung

Verhindern mit declare(strict_types=1) und === statt ==. PHP 8 hat einige der gefährlichsten Vergleiche aufgeräumt (String vs Zahl).

Rückgabewert

Typ
void

Beispiele

Klassische Fallen

<?php

var_dump('0' == false);  // true
var_dump('' == 0);       // false (seit PHP 8)
var_dump(0 == 'abc');    // false (seit PHP 8)
var_dump('abc' == 0);    // false (seit PHP 8)

// Wichtig · Fallstricke

Regel: Immer ===. Immer strict_types=1. Immer filter_var() für User-Input.